Skip to content

Common Error Messages

This page lists common error messages you may encounter in Mayo ASPM and how to resolve them.


Scanning errors

"Failed to clone repository"

Error: Failed to clone repository acme/my-repo: authentication failed

Cause: The GitHub App can't access the repository.

Fix:

  1. Verify the GitHub App is installed on the repo's organization.
  2. Verify the repo is included in the App's repository access.
  3. Click Sync Now in GitHub integration settings.

"Scanner timed out"

Error: Scanner 'semgrep' timed out after 900 seconds

Cause: The scanner exceeded its time limit.

Fix:

  1. Check repository size — very large repos may need longer timeouts.
  2. For Semgrep, try reducing the rule set to security-focused rules only.
  3. Enterprise users can request extended timeouts.

"Scan limit exceeded"

Error: Maximum concurrent scan limit (1) reached for your plan tier

Cause: You're on the Free tier and already have a scan running.

Fix: Wait for the current scan to complete, or upgrade to Pro for 5 concurrent scans.


Policy errors

"Rego parse error"

Error: rego_parse_error: unexpected token at line 5, col 12

Cause: Syntax error in your Rego code.

Common fixes:

Issue Wrong Correct
Assignment decision = "accept" decision := "accept"
Missing if decision := "accept" { } decision := "accept" if { }
Missing import (none) import rego.v1

"Conflicting rules for decision"

Error: rego_compile_error: conflicting rules for data.mayo.triage.decision

Cause: Two rules produce different values for the same output.

Fix: Ensure rules are mutually exclusive. Add conditions to prevent overlap. See Policy troubleshooting.


"Invalid package for policy kind"

Error: Package 'mayo.triage_rules' does not match expected 'mayo.triage'

Cause: The package name in your Rego doesn't match the policy kind.

Fix: Use the exact package name for your policy kind: mayo.triage, mayo.priority, mayo.ownership, mayo.project, or mayo.pr_scan.


Authentication errors

"Invalid or expired API key"

Error: {"error": {"code": "unauthorized", "message": "Invalid or expired API key"}}

Possible causes:

  1. API key was revoked — check Settings > Integrations > API Keys
  2. API key expired — check the expiry date
  3. Typo in the key — copy-paste the full key value
  4. Trailing whitespace — trim the key in your environment variable

"Insufficient permissions"

Error: {"error": {"code": "insufficient_permissions", "message": "API key lacks scans:write permission"}}

Fix: Create a new API key with the required permissions. Key permissions can't be modified after creation.


"Token expired"

Error: {"error": {"code": "token_expired", "message": "JWT access token has expired"}}

Fix: Use the refresh token to get a new access token:

curl -X POST https://mayoaspm.com/api/auth/refresh \
  -H "Content-Type: application/json" \
  -d '{"refresh_token": "your_refresh_token"}'

Integration errors

"GitHub App installation not found"

Error: GitHub App installation not found for organization 'acme'

Cause: The GitHub App was uninstalled.

Fix: Re-install from Settings > Integrations > GitHub > Install GitHub App.


"Jira connection expired"

Error: Jira OAuth token expired. Please reconnect.

Fix: Go to Settings > Integrations > Jira > Reconnect and re-authorize.


"Webhook delivery failed"

Warning: Jira webhook delivery failed 3 consecutive times

Cause: The webhook URL is unreachable from Jira.

Fix:

  1. For Jira Cloud — usually transient; check status.mayoaspm.com
  2. For Jira Data Center — verify outbound connectivity to mayoaspm.com
  3. If persistent, go to Settings > Integrations > Jira > Repair Webhook

Ticket errors

"Required field missing in Jira"

Error: Jira API error: Field 'customfield_10001' is required

Cause: Your Jira project has a required custom field that isn't mapped.

Fix: Configure the custom field mapping in Settings > Integrations > Jira > Custom Fields.


"Jira user not found"

Error: Cannot assign to user 'john.doe' — user not found in Jira

Cause: The Mayo ASPM user doesn't have a linked Jira account.

Fix:

  1. Update the user's profile to include their Jira username.
  2. Or configure the ownership policy to use team assignment instead of individual assignment.

Rate limit errors

"Rate limit exceeded"

Error: {"error": {"code": "rate_limited", "message": "Rate limit exceeded. Retry after 32 seconds."}}

Fix: Wait for the Retry-After period, then retry. See Rate limits for details on limits by tier.


General errors

"Internal server error" (500)

Error: {"error": {"code": "internal_error", "message": "An internal error occurred"}}

Steps:

  1. Note the X-Request-ID from the response header.
  2. Retry the request — transient errors may resolve.
  3. If persistent, contact support@mayoaspm.com with the request ID.

Next steps