Installation Issues
Plugin doesn't appear in OmniFocus
Plugin doesn't appear in OmniFocus
Symptoms: The plugin is not visible in Automation → Plug-Ins after installation.Solutions:
- Verify the plugin is in the correct directory:
- Ensure the directory name ends with
.omnifocusjs - Completely restart OmniFocus (⌘Q to quit, not just close the window, then relaunch)
- Check Console.app for errors:
- Open Console.app
- Filter for “OmniFocus” in the search bar
- Look for error messages related to plugin loading
Plugin appears but actions are grayed out
Plugin appears but actions are grayed out
Symptoms: The plugin shows up in the Plug-Ins menu but sync actions cannot be run.Solution: Run Configure JIRA Sync first to set up your credentials and settings. The sync actions are disabled until configuration is complete.
Authentication Issues
HTTP 401: Authentication failed
HTTP 401: Authentication failed
Error Message:
Authentication failed. Your Jira API token may be invalid or expired.Causes:- Invalid or expired API token
- Incorrect account ID or email
- Token lacks necessary permissions
- Regenerate your API token at https://id.atlassian.com/manage-profile/security/api-tokens
- Run Configure JIRA Sync and enter the new token
- Verify you’re using the correct Jira account ID (not username)
HTTP 403: Access denied
HTTP 403: Access denied
Error Message:
Access denied. Your Jira account does not have permission to access this resource.Causes:- Your Jira account lacks read permissions for the requested issues
- Project or board permissions restrict access
- Verify your Jira account has permission to view the issues in your JQL query
- Test your JQL query directly in Jira’s issue search to confirm it returns results
- Contact your Jira administrator to request appropriate permissions
Connection Issues
HTTP 404: Jira instance not found
HTTP 404: Jira instance not found
Error Message:
Jira instance not found. The Jira URL may be incorrect.Causes:- Incorrect Jira URL
- Typo in the domain name
- Missing
https://protocol
- Verify your Jira URL includes
https://(e.g.,https://yourcompany.atlassian.net) - Test the URL in your web browser to confirm it’s accessible
- Run Configure JIRA Sync and correct the URL
Network connection errors
Network connection errors
Error Message:
Failed to connect to Jira after 3 attempts: [error details]Causes:- No internet connection
- Firewall blocking outbound requests
- VPN required but not connected
- Jira instance temporarily unavailable
- Check your internet connection
- If using a VPN, ensure it’s connected
- Verify firewall settings allow OmniFocus to make network requests
- Try again after a few minutes
HTTP 429: Rate limited
HTTP 429: Rate limited
Error Message:
Rate limited by Jira. Too many requests have been made in a short period.Causes:- Running sync too frequently
- Other integrations using the same API token
- Jira instance rate limits reached
- Wait a few minutes before retrying
- Reduce sync frequency
- If using multiple tools with the same API token, consider creating separate tokens for each
Retry-After header and automatically waits before retrying (up to 60 seconds).JQL Query Issues
HTTP 400: Invalid JQL query
HTTP 400: Invalid JQL query
Error Message:
Invalid request to Jira API. This usually means there is a problem with your JQL query.Causes:- Syntax error in JQL query
- Invalid field names or operators
- Typo in project key, status name, or other values
- Test your JQL query directly in Jira:
- Go to Jira and click Filters → Advanced issue search
- Paste your query and click Search
- Check the error details returned by Jira (displayed in the error message)
- Common fixes:
- Ensure project keys are uppercase (e.g.,
PROJnotproj) - Use quotes for multi-word values (e.g.,
status = "In Progress") - Verify field names are spelled correctly (e.g.,
assigneenotassigned)
- Ensure project keys are uppercase (e.g.,
- See JQL examples for reference
No issues syncing (query returns no results)
No issues syncing (query returns no results)
Symptoms: Sync completes successfully but no tasks are created or updated.Causes:
- JQL query doesn’t match any issues
- Issues haven’t been updated since last sync (for incremental sync)
- All matching issues are already synced and unchanged
- Test your JQL query in Jira to verify it returns issues
- For incremental sync, try running Sync Jira Full to fetch all matching issues
- Check the sync statistics message for details
- If using
updated >= [date]in your query, ensure issues have been modified recently
Task Synchronization Issues
Duplicate tasks appearing
Duplicate tasks appearing
Symptoms: Multiple tasks exist for the same Jira issue.Causes:
- Tasks were created manually without the
[JIRA-KEY]prefix - Tasks were renamed, removing the prefix
- Database inconsistency
- Verify tasks have the correct
[JIRA-KEY]prefix format - Manually delete duplicate tasks
- Run Sync Jira Full to refresh all tasks
[JIRA-KEY] prefix. The plugin uses this prefix to identify and deduplicate tasks.Tasks not updating when Jira issues change
Tasks not updating when Jira issues change
Symptoms: Changes in Jira don’t appear in OmniFocus after sync.Causes:
- Using incremental sync but issue hasn’t been updated in Jira since last sync
- Issue no longer matches JQL query
- Task was manually modified in OmniFocus (manual changes are overwritten on next sync)
- Run Sync Jira Full to force a complete refresh
- Verify the issue still matches your JQL query in Jira
- Check the issue’s “Updated” date in Jira to ensure it’s recent
Tasks marked complete but Jira issues are still open
Tasks marked complete but Jira issues are still open
Symptoms: OmniFocus tasks are completed during full sync even though Jira issues are active.Causes:
- Issue no longer matches your JQL query (moved to a different project, reassigned, etc.)
- Full sync marks tasks as completed if they don’t appear in current results
- Adjust your JQL query to include the missing issues
- Run Sync Jira Full again to refresh
- Manually mark tasks as incomplete if they were incorrectly completed
Task status not syncing correctly
Task status not syncing correctly
Symptoms: Task completion status doesn’t match Jira issue status.Causes:
- Custom Jira status names not in the default mapping
- Status mapping configuration is incorrect
- Check your status mappings in Configure JIRA Sync
- Default mappings:
- Completed: Done, Closed, Resolved
- Dropped: Withdrawn
- Active: All other statuses
- Add your custom status names to the appropriate mapping (comma-separated)
- Run sync again to apply the new mappings
Project Organization Issues
Tasks not appearing in expected projects
Tasks not appearing in expected projects
Symptoms: Tasks are created in the inbox instead of projects, or in wrong projects.Causes:
- Project organization is not enabled
- Jira issue has no parent (Epic)
- Parent project doesn’t exist in OmniFocus
- Default project folder doesn’t exist
- Enable Project Organization in Configure JIRA Sync
- Verify Jira issues have parent issues (Epics) assigned
- If using a default project folder, ensure the folder structure exists in OmniFocus:
- Use colon-separated paths (e.g.,
Work:Jira:Epics) - Create folders manually in OmniFocus before syncing
- Use colon-separated paths (e.g.,
- Run Sync Jira Full to reorganize tasks
Default project folder not found
Default project folder not found
Symptoms: Projects are created at root level instead of in the specified folder.Error Message:
Folder "[folder path]" not found, creating project at root levelCauses:- Folder doesn’t exist in OmniFocus
- Typo in folder path
- Incorrect folder path format
- Create the folder structure in OmniFocus:
- Right-click in the Projects sidebar → New Folder
- For nested folders, create each level separately
- Verify the folder path in Configure JIRA Sync matches exactly (case-sensitive)
- Use colon-separated paths for nested folders (e.g.,
Work:Jira:Epics) - Leave the field empty to create projects at root level
Debugging Tips
View Console Logs
The plugin logs detailed information to the system console, which is helpful for debugging:- Open Console.app (Applications → Utilities → Console)
- In the search bar, enter:
OmniFocus - Click Start to begin streaming logs
- Run the sync action in OmniFocus
- Look for error messages, warnings, or unexpected behavior
- API requests and responses
- JQL queries being executed
- Task creation/update details
- Error messages with stack traces
- Retry attempts and backoff delays
Test Configuration
The Configure JIRA Sync action includes a connection test that validates:- Jira URL accessibility
- API token authentication
- JQL query syntax and results
Incremental vs Full Sync
Incremental Sync (Sync Jira):
- Fetches only issues updated since last sync
- Faster but may miss issues that were moved out of scope
- Use for regular daily syncs
Sync Jira Full):
- Fetches all issues matching your JQL query
- Completes tasks no longer in results
- Use weekly or when troubleshooting
Getting Help
If you’re still experiencing issues:- Check the GitHub Issues for similar problems
- Open a new issue with:
- OmniFocus and macOS versions
- Steps to reproduce the issue
- Relevant Console.app logs
- Error messages (redact any sensitive information)
- For feature requests, use the Feature Request template
Common Error Messages Reference
| HTTP Status | Error Message | Common Cause |
|---|---|---|
| 400 | Invalid request to Jira API | JQL syntax error |
| 401 | Authentication failed | Invalid API token |
| 403 | Access denied | Insufficient permissions |
| 404 | Jira instance not found | Incorrect URL |
| 429 | Rate limited by Jira | Too many requests |
| 500/502/503/504 | Jira API returned status [code] | Temporary Jira outage |