Debug logging
Before troubleshooting, enable debug logging to see detailed execution information:debug.log file in the current directory with detailed logs (see cmd/root.go:58-68).
Configuration issues
Config file not found
Config file not found
Problem: Pomo doesn’t load your custom configuration.Solution: Pomo searches for config files in this order (see Create config in the correct location:
config/config.go:166-184):- Current directory:
./pomo.yaml(highest priority) - System config directory:
- Linux/macOS:
~/.config/pomo/pomo.yaml - Windows:
%APPDATA%\pomo\pomo.yaml
- Linux/macOS:
- Built-in defaults if no config found
Invalid configuration syntax
Invalid configuration syntax
Problem: Config file exists but Pomo shows errors or uses defaults.Common YAML syntax errors:Validate your YAML:
Invalid duration values
Invalid duration values
Problem: Error message like “invalid duration: ‘abc’”Solution: Use proper Go duration format:The duration parsing happens in
- Valid:
25m,1h30m,90m,5m30s - Invalid:
25,1:30,90 minutes
cmd/runner.go:42-46.Notification issues
Desktop notifications don't appear
Desktop notifications don't appear
Problem: No desktop notifications when sessions complete.Platform-specific solutions:Linux:
- Check if notification daemon is running:
- Install notification support:
- Test notifications manually:
- Grant terminal notification permissions:
- System Preferences → Notifications
- Find your terminal app (Terminal, iTerm2, etc.)
- Enable “Allow Notifications”
- Check Windows notification settings:
- Settings → System → Notifications
- Ensure notifications are enabled
- Check if app notifications are allowed
Notification permission denied
Notification permission denied
Problem: Logs show “failed to send notification: permission denied”Solution:
- macOS: Grant permission in System Preferences → Notifications
- Linux (Flatpak): Grant notification permission:
- Snap packages: Ensure notification interface is connected:
Custom notification icon not showing
Custom notification icon not showing
Problem: Custom icon path doesn’t display.Solution:
- Ensure the file exists:
ls -l ~/icons/pomo.png - Use PNG format for best compatibility
- Path expansion happens in
config/config.go:129-135
Display issues
ASCII art timer doesn't display correctly
ASCII art timer doesn't display correctly
Problem: Timer shows garbled characters or boxes.Solution:
-
Use a terminal with proper Unicode support:
- ✅ Modern terminals: iTerm2, Alacritty, Windows Terminal
- ⚠️ May have issues: older cmd.exe, basic terminal emulators
-
Try different fonts:
Available fonts are defined in
ui/ascii/fonts.go. -
Disable ASCII art if problems persist:
Colors don't appear
Colors don't appear
Problem: Timer displays in monochrome.Solution:
-
Check terminal color support:
-
Enable colors in terminal:
-
Verify color in config:
Heatmap icons missing in stats
Heatmap icons missing in stats
Problem:
pomo stats shows boxes instead of icons in heatmap.Solution:The heatmap requires a Nerd Font to display icons correctly.-
Install a Nerd Font:
-
Configure your terminal to use the font:
- iTerm2: Preferences → Profiles → Text → Font
- Alacritty: Edit
~/.config/alacritty/alacritty.yml - Windows Terminal: Settings → Profiles → Appearance → Font face
-
Choose a Nerd Font variant:
- FiraCode Nerd Font
- Hack Nerd Font
- JetBrainsMono Nerd Font
Sound and command issues
Sound notifications don't play
Sound notifications don't play
Problem: No sound when using
then commands.Solution:-
Verify audio player is installed:
-
Test command manually:
-
Check file path and format:
- Use absolute paths:
~/sounds/bell.wav - Verify file exists:
ls -l ~/sounds/bell.wav - Use supported formats: WAV, MP3, OGG
- Use absolute paths:
-
Check command syntax:
Custom commands not running
Custom commands not running
Problem: Commands in
then field don’t execute.Solution:-
Enable debug logging:
Check
debug.logfor errors like: -
Verify command exists:
-
Use full paths for safety:
-
Check timeout (5 seconds):
Commands exceeding 5 seconds are terminated (see
actions/actions.go:15). For long tasks, run in background:
Database and statistics issues
Stats command shows no data
Stats command shows no data
Problem:
pomo stats displays empty or zero data.Cause:- No completed sessions recorded yet
- Database file missing or corrupted
- Database location changed
- Complete at least one full session (don’t quit early)
-
Check database location:
- Linux/macOS:
~/.local/state/pomo/pomo.db - Windows:
%APPDATA%\pomo\pomo.dbDefined indb/connect.go:71-92.
- Linux/macOS:
-
Verify database exists:
Database connection errors
Database connection errors
Problem: Errors like “failed to connect to the db” in logs.Solution:
-
Check directory permissions:
- Ensure SQLite is available: Pomo uses embedded SQLite (modernc.org/sqlite), but the directory must be writable.
-
Remove corrupted database:
Stats not updating after sessions
Stats not updating after sessions
Problem: Completed sessions don’t appear in
pomo stats.Solution:- Ensure you complete the full session Quitting early (Ctrl+C before timer ends) may not record stats.
-
Check for database write errors:
-
Verify database is writable:
Installation issues
Command not found after installation
Command not found after installation
Problem: Homebrew (macOS):From source:
pomo: command not found after installing.Solution by installation method:Go install:Getting help
If your issue isn’t covered here:-
Enable debug logging and check
debug.log: - Check existing issues on GitHub
-
Create a new issue with:
- Your operating system and version
- Pomo version:
pomo --version - Config file contents (remove sensitive data)
- Relevant
debug.logexcerpts - Steps to reproduce the problem
Related topics
- Configuration overview - Configuration file reference
- Sound notifications - Audio setup
- Custom commands - Command automation