skills/polymer-pay-api-errors/SKILL.md
Reference guide for HTTP error codes returned by the Polymer Pay proxy. Use to understand error causes and solutions when API requests fail.
npx skillsauth add obulai/obul-apis polymer-pay-api-errorsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Comprehensive reference for HTTP error responses from the Polymer Pay proxy. Understand error codes, diagnose issues, and resolve failures quickly.
All error responses include standard HTTP status codes and JSON error bodies. Include your Polymer Pay API key in all requests:
{
"headers": {
"Content-Type": "application/json",
"x-polymer-pay-api-key": "{{POLYMER_PAY_API_KEY}}"
}
}
Base URL: https://pay.polymerlabs.org/proxy/{scheme}/{host}
Parse an Polymer Pay error response to understand the cause and recommended fix.
Pricing: $0.00
{
"method": "GET",
"url": "https://pay.polymerlabs.org/proxy/https/example.com/api/endpoint",
"headers": {
"Content-Type": "application/json",
"x-polymer-pay-api-key": "{{POLYMER_PAY_API_KEY}}"
}
}
Response: Error response includes code, message, and context fields:
{
"error": {
"code": "payment_required",
"message": "Account missing billing state or default payment case",
"pending_cents": 150,
"limit_cents": 1000
}
}
Look up error codes by HTTP status to diagnose failures.
Pricing: $0.00
Reference this skill to decode any error response from Polymer Pay proxy requests.
| Code | Message | Cause |
|------|---------|-------|
| invalid_headers | Header preparation fails for upstream request | Proxy unable to forward headers |
| invalid_requirements | Invalid payment requirements received from upstream service | Upstream returns unparseable 402 requirements |
| Code | Message | Cause |
|------|---------|-------|
| unauthorized | Invalid or missing authentication credentials | Missing or invalid claims in request |
| invalid_token | Token expired or invalid. Please refresh your token | Expired or invalid JWT |
| jwks_unavailable | Auth service unreachable for key validation | JWKS endpoint unreachable |
| Code | Message | Cause |
|------|---------|-------|
| payment_required | Account missing billing state or default payment case | No billing setup or payment method |
| spend_limit_exceeded | Account over spending limit (reason: over_limit) | Account exceeded configured limit |
| Code | Message | Cause |
|------|---------|-------|
| endpoint_not_allowed | Invalid scheme/host validation | Requested endpoint not in allowlist |
| policy_violation | Request violates account policy limits | Claims do not allow requested host |
| payment_method_required | Payment method required | No payment method on account |
| spend_limit_exceeded | Spend limit exceeded | Account limit exceeded |
| Code | Message | Cause |
|------|---------|-------|
| not_found | Resource not found | Wallet screening blocked (sanctioned, invalid address, or config blocklist) |
| Code | Message | Cause |
|------|---------|-------|
| request_timeout | Request timeout | Client request body read idle timeout |
| Code | Message | Cause |
|------|---------|-------|
| body_too_large | Body too large | Request body exceeds max_request_body_bytes |
| Code | Message | Cause |
|------|---------|-------|
| upstream_rate_limit | Rate limited by upstream service | Upstream service returned 429 |
| Code | Message | Cause |
|------|---------|-------|
| something_went_wrong | Something went wrong | Catch-all internal error |
| misconfigured_upstream | Upstream configuration error | Bad upstream configuration |
| wallet_screening_failed | Wallet screening failed | Screening API error (fail-closed) |
| Code | Message | Cause |
|------|---------|-------|
| upstream_unavailable | Upstream unavailable | DNS resolution fails or upstream unreachable |
| upstream_body_error | Upstream body error | Error reading client request body |
| accounts_service_unavailable | Accounts API was unable to be reached | Accounts API is down |
| upstream_invalid_requirements | Invalid payment requirements from upstream | Upstream returns malformed 402 requirements |
| payment_failed | Failed to process payment for this request | Payment build/signing failed |
| proxy_error | Proxy error | Response builder fails constructing proxy response |
| Code | Message | Cause |
|------|---------|-------|
| payment_unavailable | Payment failed: insufficient funds in Polymer Pay | Polymer Pay wallet has insufficient funds |
| payment_unavailable | Payment processing unavailable | Payment system temporarily down |
code and message fields that pinpoint the issuespend_limit_exceeded means your account hit its configured limit| Error | Cause | Solution |
|-------|-------|----------|
| 400 invalid_headers | Proxy header preparation failed | Verify request headers are well-formed |
| 401 unauthorized | Missing or invalid API key | Check POLYMER_PAY_API_KEY is set and valid |
| 401 invalid_token | JWT expired or invalid | Refresh your authentication token |
| 402 payment_required | No billing setup | Add payment method at my.pay.polymerlabs.org/dashboard/api-keys |
| 402 spend_limit_exceeded | Account limit reached | Increase spend limit or wait for reset |
| 403 endpoint_not_allowed | Host not in allowlist | Contact support to enable this endpoint |
| 404 not_found | Wallet screening blocked | Check address is valid and not sanctioned |
| 429 upstream_rate_limit | Upstream throttling | Add delays between requests |
| 502 upstream_unavailable | Upstream service down | Retry after a short delay |
| 503 payment_unavailable | Insufficient Polymer Pay funds | Top up your Polymer Pay wallet |
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.