Skip to main content

Troubleshooting

Resolve the most common integration issues.


Policy Decision Blocks

Symptoms: POLICY_DECISION_DENY or POLICY_DECISION_REVIEW.

Fix: Inspect error.reason and the dashboard transaction logs. Adjust limits or whitelists as required.


Policy Hash Mismatch

Symptoms: POLICY_HASH_MISMATCH.

Cause: Dashboard hash changed after you hard-coded expectedPolicyHash.

Fix: Update the hash in configuration or remove the check during development. The latest hash is shown beside each asset rule.


Authorisation Invalid or Expired

Symptoms: AUTH_INVALID, AUTH_EXPIRED, AUTH_USED, AUTH_MISMATCH.

Cause: Gate 2 detected reused, stale, or tampered token.

Fix: Call wallet.send(...) again for fresh authorisation. Tokens are single-use.


Unknown Error / No Hash Returned

Symptoms: UNKNOWN_ERROR, no transaction hash.

Cause: Network outage, RPC failure, or temporary policy-service issue.

Fix: Retry with exponential backoff. SDK refuses to sign while upstream dependencies fail.


Dashboard Shows Nothing

  1. Confirm you’re using the correct API key.
  2. Check Gate 1 response via curl -v (expect HTTP 200/4xx).
  3. Ensure your code doesn’t swallow PolicyError exceptions before logging.

Need Help?

Collect:

  • Full error object (code, message, details)
  • Timestamp and agent name
  • Decision proof (if available)

Then contact support@spendsafe.com for assistance.