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
- Confirm you’re using the correct API key.
- Check Gate 1 response via
curl -v(expect HTTP 200/4xx). - Ensure your code doesn’t swallow
PolicyErrorexceptions 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.