HomeDocs › Troubleshooting

Troubleshooting Guide

Last updated: 2026-04-06 · 8 min read

API Errors

401 Unauthorized — "api key required"

Error
{"error": "api key required (X-API-Key header)"}
Fix

Pass your API key in the request header. Use X-API-Key: ps_your_key or Authorization: Bearer ps_your_key.

curl -H "X-API-Key: ps_your_key" https://priostack.com/api/me

403 Forbidden — email not yet verified

Error
{"error": "email address not yet verified"}
Fix

Click the verification link in your welcome email. Haven't received it? Use POST /api/resend-verification with your email, or check spam. The link expires after 72 hours.

400 Bad Request — invalid BPMN

Error
{"error": "BPMN parse failed: missing end event in process loan-approval"}
Fix

Every BPMN process must have at least one End Event. Open your model in Camunda Modeler, fix the validation errors shown in the lower panel, then re-export and redeploy.

Common causes: missing End Event, unconnected sequence flows, missing task type on Service Tasks (add zeebe:taskDefinition type="...").

429 Too Many Requests — rate limit exceeded

Error
{"error": "signup rate limit exceeded"}
Fix

Check the X-RateLimit-Reset header for when the window resets (Unix timestamp). Implement exponential backoff in your worker. Default limit: 300 requests/minute per IP.

Stuck Process Instances

Instance stuck at a Service Task indefinitely

The instance is waiting for a worker to pick up the job. Check:

  1. Your worker is running and polling the correct type — must match the zeebe:taskDefinition type in your BPMN.
  2. The worker is using the correct API key.
  3. Poll GET /api/v1/jobs/activate with the correct type and check the response — if it returns an empty jobs array, the type doesn't match.
curl -X POST https://priostack.com/api/v1/jobs/activate \ -H "X-API-Key: ps_..." \ -d '{"type":"credit-check","worker":"debug","maxJobsToActivate":1}'

If the job is returned, your worker logic is the issue. If it returns {"jobs":[]}, check the task type name matches exactly (case-sensitive).

Instance stuck at a User Task

User tasks require a human to claim and complete them. Use the Tasklist UI at /tasklist or call:

curl -X POST https://priostack.com/api/v1/tasks/{taskKey}/complete \ -H "X-API-Key: ps_..." \ -d '{"variables":{"approved":true}}'

DMN / Decision Table Issues

DMN evaluation returns null / no matching row

With FIRST hit policy, if no row matches the inputs, the decision returns null. Check:

Webhook Issues

Webhook not delivered / delivery showing 0 attempts

Check:

  1. Webhook is registered and enabled — GET /api/webhooks
  2. Your endpoint is publicly reachable (localhost URLs will fail in production)
  3. Your endpoint returns HTTP 2xx — any other status triggers a retry
  4. Check delivery logs at GET /api/webhooks/logs

Use POST /api/webhooks/test to fire a synthetic payload to all registered endpoints.

Credit Issues

Insufficient credits error when starting an instance

{"error": "insufficient credits — balance: 0"}

Top up via the Wallet page. If you believe your balance is incorrect, check GET /api/usage for the full ledger and contact support@priostack.com with your X-Request-ID.

Debug Mode (A-0583)

Every API response includes an X-Request-ID header. Include this in support requests — it lets us correlate your request in server logs.

Always include the X-Request-ID from an error response when contacting support. Example: X-Request-ID: 3f8a2b1c9d4e5f6a

← Back to Docs · Camunda Migration Guide →