Troubleshooting Guide¶
Common issues and solutions for Kiosque.
Table of Contents¶
- Installation Issues
- Configuration Issues
- Authentication Issues
- Article Extraction Issues
- TUI Issues
- Network Issues
- Platform-Specific Issues
Installation Issues¶
command not found: kiosque¶
Problem: After installing, the kiosque command is not available.
Solutions:
- Check installation method:
- Verify PATH:
# pip installs to user directory, check it's in PATH:
python -m site --user-base
# Add <output>/bin to your PATH
- Use Python module syntax:
ModuleNotFoundError: No module named 'kiosque'¶
Problem: Python can't find the kiosque module.
Solutions:
- Verify installation:
- Check Python version:
- Reinstall:
pandoc: command not found¶
Problem: Pandoc is not installed (required for HTML to Markdown conversion).
Solutions:
macOS:
Linux (Ubuntu/Debian):
Linux (Fedora):
Windows:
Or download from: https://pandoc.org/installing.html
Configuration Issues¶
"Configuration file not found"¶
Problem: Kiosque can't find the configuration file.
Solutions:
- Find config location:
- Create configuration directory:
- Create configuration file:
cat > ~/.config/kiosque/kiosque.conf << 'EOF'
[https://www.example.com/]
username = your_username
password = your_password
[raindrop.io]
token = your_raindrop_token
EOF
- Custom location via environment variable:
"Invalid configuration format"¶
Problem: Configuration file has syntax errors.
Solutions:
- Check INI format:
# Good ✓
[https://www.lemonde.fr/]
username = user@example.com
password = mypassword
# Bad ✗ (missing section)
username = user@example.com
password = mypassword
- Check for typos:
- Section names must be URLs with
https:// - URL must end with
/ -
Key names:
username,password,token(lowercase) -
Validate with Python:
Authentication Issues¶
"Login failed" or "403 Forbidden"¶
Problem: Can't log in to website despite correct credentials.
Solutions:
- Verify credentials:
- Log in manually via browser to confirm they work
- Check for special characters that need escaping
-
Some sites use email, others use username
-
Check if login flow changed:
-
Known broken logins: See
tests/test_login.pyfor list of websites with outdated login flows. -
Two-factor authentication:
- Kiosque doesn't support 2FA
-
Some sites allow app-specific passwords - try creating one
-
IP-based restrictions:
- Some sites block VPN/proxy connections
- Try disabling VPN temporarily
"Invalid username or password"¶
Problem: Credentials rejected by website.
Solutions:
- Check configuration file syntax:
[https://www.example.com/]
username = user@example.com # No quotes needed
password = mypassword123 # No quotes needed
- Verify credentials work in browser:
- Try logging in manually
- Check for password reset requirements
-
Verify subscription is active
-
Check for special characters:
Article Extraction Issues¶
"Website not supported"¶
Problem: URL is not recognized by Kiosque.
Solutions:
- Check supported websites:
- See Supported Sites for complete list
-
30+ websites currently supported
-
URL must match base_url:
# Good ✓
kiosque https://www.lemonde.fr/article/...
# Bad ✗ (missing www subdomain)
kiosque https://lemonde.fr/article/...
- Contribute support for new website:
- See Contributing Guide
- Adding a new site is usually straightforward
"Article content is empty" or "NotImplementedError"¶
Problem: Kiosque can't extract article text.
Solutions:
- Website changed HTML structure:
- This is the most common issue
- Websites update their design, breaking scrapers
-
Open an issue on GitHub with:
- Website name
- Example article URL
- Error message or empty output
-
Article requires JavaScript:
- Some sites load content dynamically with JS
- Kiosque only handles static HTML
-
Workaround: Try reading in browser reader mode instead
-
Paywall blocking content:
- Some paywalls hide content in HTML (not just visually)
- Verify you're logged in (use
-vflag to check) - Some sites may block programmatic access even with credentials
"Unwanted elements in output"¶
Problem: Ads, navigation, or other junk appears in article text.
Solutions:
- File an issue with:
- Website name
- Example article URL
- Description of unwanted elements
-
Screenshot if helpful
-
Quick fix (for developers): Edit the website's
clean_nodesinkiosque/website/<site>.py:
TUI Issues¶
"No bookmarks found" in TUI¶
Problem: TUI launches but shows no bookmarks from Raindrop.io.
Solutions:
- Check Raindrop.io token:
- Verify token is valid:
- Visit https://app.raindrop.io/settings/integrations
- Check if token is still active
-
Generate new token if needed
-
Check for unsorted bookmarks:
- TUI only shows Unsorted bookmarks
- Move bookmarks to Unsorted collection in Raindrop.io
-
Or modify code to fetch from different collection
-
Test API manually:
from kiosque.api.raindrop import Raindrop
raindrop = Raindrop(token="your_token")
items = raindrop.retrieve()
print(f"Found {len(items)} bookmarks")
TUI crashes or freezes¶
Problem: TUI becomes unresponsive or crashes.
Solutions:
- Check terminal size:
- TUI requires minimum terminal size
-
Resize terminal to at least 80x24
-
Kill and restart:
- Check logs:
- Update Textual:
"Modal won't close" or keyboard shortcuts not working¶
Problem: TUI keys don't respond as expected.
Solutions:
- Verify keybindings:
Esccloses modalqquits (when not in modal)-
See README for full keybindings
-
Terminal compatibility:
- Some terminals don't send all keys correctly
-
Try a different terminal (e.g., iTerm2, Alacritty)
-
Check for key conflicts:
- Some terminals intercept keys (e.g., tmux)
- Try running outside tmux/screen
Network Issues¶
"Connection timeout" or "Network error"¶
Problem: Requests to websites time out.
Solutions:
- Check internet connection:
- Retry logic is automatic:
- Kiosque retries 3 times with exponential backoff
-
Wait for all retries to complete (may take 30+ seconds)
-
Increase timeout (for developers): Edit
kiosque/core/client.py:
- Check firewall/proxy:
- Some corporate networks block certain sites
- Try from different network
"SSL certificate verification failed"¶
Problem: HTTPS requests fail due to SSL errors.
Solutions:
- Update CA certificates:
# macOS:
brew update && brew upgrade openssl
# Ubuntu:
sudo apt-get update && sudo apt-get upgrade ca-certificates
- Temporary workaround (not recommended):
"Too many requests" or "Rate limited"¶
Problem: Website blocks requests due to rate limiting.
Solutions:
- Wait before retrying:
-
Most rate limits reset after 15 minutes - 1 hour
-
Slow down requests:
- Don't download many articles rapidly
- Add delays between downloads
"403 Forbidden" or "406 Not Acceptable" - Geo-blocking¶
Problem: Website blocks access from your geographic location.
Known geo-blocked websites:
- Courrier International - Returns 406 outside France/Europe
- Les Échos - Returns 403 (Akamai CDN) outside France/Europe
Solutions:
- Use SOCKS or HTTP proxy:
Kiosque supports routing traffic through proxies. Configure in ~/.config/kiosque/kiosque.conf:
Supported proxy types:
- socks4://host:port - SOCKS4 proxy
- socks5://host:port - SOCKS5 proxy (recommended)
- http://host:port - HTTP proxy
- https://host:port - HTTPS proxy
With authentication:
- Set up SSH tunnel (SOCKS5):
If you have SSH access to a server in the target region:
# Create SOCKS5 proxy on localhost:1080
ssh -D 1080 -N user@server-in-france.com
# In another terminal, configure kiosque to use it:
# Edit ~/.config/kiosque/kiosque.conf and add:
# [proxy]
# url = socks5://localhost:1080
# Then run kiosque normally
kiosque https://www.courrierinternational.com/article/...
- Use commercial VPN service:
Many VPN services offer SOCKS5 proxies: - NordVPN: Supports SOCKS5 proxy - ExpressVPN: Via manual configuration - Shadowsocks: Open-source SOCKS5 solution
Configure the proxy URL from your VPN provider in kiosque.conf.
- Test proxy connection:
# Test if proxy works (requires curl with SOCKS support):
curl --socks5 localhost:1080 https://www.courrierinternational.com/
# Should return HTML, not 406 error
- Verify proxy in logs:
When proxy is configured, you'll see on startup:
Note: Proxy configuration applies to ALL HTTP requests made by Kiosque. To disable, simply remove or comment out the [proxy] section in kiosque.conf.
- Use browser as fallback:
- If blocked, open URL with
okey in TUI - Website may have bot detection
Platform-Specific Issues¶
macOS: "Operation not permitted"¶
Problem: Permission denied errors on macOS.
Solutions:
- Grant Terminal full disk access:
- System Preferences → Security & Privacy → Privacy
-
Full Disk Access → Add Terminal
-
Fix config directory permissions:
Linux: "Permission denied" writing files¶
Problem: Can't save downloaded articles.
Solutions:
- Check file permissions:
- Specify output location:
- Fix ownership:
Still Having Issues?¶
Before Opening an Issue¶
- Update to latest version:
- Check existing issues:
-
https://github.com/yourusername/kiosque/issues
-
Gather debug information:
# Run with verbose logging:
kiosque -v https://website.com/article - 2>&1 | tee debug.log
# Include in issue:
# - Python version: python --version
# - Kiosque version: pip show kiosque
# - OS: uname -a (Linux/Mac) or ver (Windows)
# - Error message or debug.log
# - Steps to reproduce
Open an Issue¶
Include:
- Description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Python version, OS, kiosque version
- Relevant logs (with
-vflag) - Example article URL (if applicable)
Get Help¶
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: Questions and community support
- Documentation:
- Quick Start Guide - Getting started
- Architecture - System design
- Contributing Guide - Development guide
Common Error Messages Reference¶
| Error Message | Likely Cause | Solution |
|---|---|---|
Website not supported |
URL not in supported list | Check Supported Sites or add support |
NotImplementedError: article() |
Website HTML changed | Open issue with example URL |
ConnectionError |
Network issue | Check internet, retry |
HTTPStatusError: 403 |
Blocked or login failed | Check credentials, verify subscription |
HTTPStatusError: 404 |
Invalid URL | Verify URL is correct |
HTTPStatusError: 429 |
Rate limited | Wait 15-60 min before retry |
ModuleNotFoundError |
Installation issue | Reinstall kiosque |
FileNotFoundError: pandoc |
Pandoc not installed | Install pandoc |
ValidationError |
Config file invalid | Check INI syntax |
AttributeError: 'NoneType' |
Article element not found | Website HTML changed, open issue |
Debug Mode¶
Enable maximum verbosity for troubleshooting:
# CLI:
kiosque -v https://website.com/article -
# Python:
import logging
logging.basicConfig(level=logging.DEBUG)
from kiosque import Website
website = Website.instance("https://website.com/article")
website.save("https://website.com/article", "test.md")
This will show:
- HTTP requests and responses
- Login flow details
- HTML parsing steps
- Errors with stack traces