Skip to main content
AI/MLjeremylongshore

clari-common-errors

'Diagnose and fix Clari API errors including auth failures, export issues,

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--clari-common-errors
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/clari-pack/skills/clari-common-errors/SKILL.md -o .claude/skills/clari-common-errors.md

Drops the SKILL.md into .claude/skills/clari-common-errors.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Clari Common Errors

Overview

Diagnostic guide for the most common Clari API issues: authentication failures, empty exports, job timeouts, and data discrepancies.

Prerequisites

  • Authorized, scoped access to the affected Clari environment
  • Redacted job IDs, timestamps, and export metadata for diagnosis
  • A named owner for credentials, forecast data, and production change approval
  • Access to the certified prior dataset for safe comparison and recovery

Instructions

Confirm the environment and affected period, collect the smallest redacted evidence needed to classify the issue, then follow the matching reference entry. Change one variable at a time and do not retry authentication, rate, or data-integrity failures indefinitely. Escalate ambiguous provider behavior with job IDs and timestamps rather than guessing at a production fix.

Error Handling

Failure class Safe first response
Authentication or authorization Stop retries and route to the credential/admin owner.
Empty, partial, or mismatched export Mark the dataset uncertified and retain the prior certified output.
Timeout or rate limit Preserve job state and resume through the bounded scheduler policy.
Suspected data exposure Restrict access, notify governance, and use the incident process.

Error Reference

1. 401 Unauthorized

{"error": "Unauthorized", "message": "Invalid API key"}

Fix: Regenerate token at Clari > User Settings > API Token. Tokens may expire or be revoked by admins.

2. 403 Forbidden -- API Access Not Enabled

{"error": "Forbidden", "message": "API access not enabled for this user"}

Fix: Contact your Clari admin to enable API access. Requires enterprise plan.

3. 404 Forecast Not Found

{"error": "Not Found", "message": "Forecast 'wrong_name' not found"}

Fix: List available forecasts first:

curl -s -H "apikey: ${CLARI_API_KEY}" \
  https://api.clari.com/v4/export/forecast/list | jq '.forecasts[].forecastName'

4. Export Returns Empty Entries

The API returns {"entries": []} with no error.

Causes:

  • Time period has no submitted forecasts
  • User lacks visibility into the forecast hierarchy
  • Wrong forecast name (case-sensitive)

Fix: Verify in Clari UI that the forecast has submissions for the requested period.

5. Job Stuck in PENDING

Export job never reaches COMPLETED status.

Causes:

  • Very large export (all reps, all periods)
  • Clari backend queue congestion

Fix: Increase polling timeout. Break large exports into per-period batches.

6. Data Mismatch Between API and UI

Forecast numbers from API do not match what is shown in Clari UI.

Causes:

  • API exports submitted calls, UI may show latest-edited values
  • Currency conversion differences
  • Time period boundary differences (calendar vs fiscal)

Fix: Use includeHistorical: true to get all submission versions. Match the exact time period label from the UI.

7. Copilot API OAuth Errors

{"error": "invalid_client"}

Fix: The Copilot API uses OAuth2, not API key auth. Register your app at https://api-doc.copilot.clari.com and use client credentials flow.

8. Rate Limit Exceeded

HTTP 429 Too Many Requests

Fix: Implement exponential backoff. See clari-rate-limits for patterns.

Quick Diagnostic Commands

# Test API key
curl -s -o /dev/null -w "%{http_code}" \
  -H "apikey: ${CLARI_API_KEY}" \
  https://api.clari.com/v4/export/forecast/list

# List all forecasts
curl -s -H "apikey: ${CLARI_API_KEY}" \
  https://api.clari.com/v4/export/forecast/list | jq .

# Check running jobs
curl -s -H "apikey: ${CLARI_API_KEY}" \
  https://api.clari.com/v4/export/jobs | jq '.jobs[] | {jobId, status, createdAt}'

Output

Create a redacted incident record with environment, period, symptom, source job/correlation ID, evidence, containment action, current data-certification state, and escalation owner. Keep tokens, individual forecast values, and download URLs out of diagnostic tickets and chat.

Examples

When an export returns zero records, confirm the source period and job status, mark the downstream refresh failed, and retain yesterday’s certified dataset. When a request returns 401, stop the scheduler, verify the secret reference with its owner, and rotate through the approved process instead of testing keys in terminals or tickets.

Resources

Next Steps

For comprehensive diagnostics, see clari-debug-bundle.