Errors

SheetBridge uses standard HTTP status codes and returns error details in JSON format.

Status Codes

Status Code Description
200 Success
202 Accepted (operation queued)
400 Bad Request
401 Unauthorized (invalid or missing token)
403 Forbidden (token doesn't have access to the specified bridge)
404 Not Found (bridge or record not found)
422 Unprocessable Entity (validation error, e.g., ambiguous filter column)
429 Too Many Requests (rate limited by Google API)
500 Internal Server Error

Error Response Format

Error responses vary depending on the error type. All errors include an error field, and may include additional fields:

{
  "error": "Error message here",
  "message": "Additional message (optional)",
  "details": "Additional details if available (optional)",
  "rate_limited": false
}

Fields

  • error - Always present (required)
  • message - Present in some errors (optional)
  • details - Present in exception errors (optional)
  • rate_limited - Present in rate limit errors (optional)

Common Errors

401 Unauthorized

Invalid or missing Bearer token:

{
  "error": "Unauthorized",
  "message": "Invalid or missing authentication token"
}

Solution: Check that you're including a valid Bearer token in the Authorization header.

403 Forbidden

Token doesn't have access to the specified bridge:

{
  "error": "Forbidden",
  "message": "Token does not have access to this bridge"
}

Solution: Ensure your token belongs to the bridge owner.

404 Not Found

Bridge or record not found:

{
  "error": "Not Found",
  "message": "Bridge or record not found"
}

Solution: Verify the bridge ID, sheet ID, and record ID are correct.

422 Unprocessable Entity

Validation error, such as ambiguous filter column:

{
  "error": "Unprocessable Entity",
  "message": "Ambiguous filter column: 'name' matches multiple columns"
}

Solution: Use more specific column names or provide the exact column name.

429 Too Many Requests

Rate limit exceeded:

{
  "error": "Rate limit exceeded",
  "rate_limited": true,
  "message": "Too many requests. Please try again later."
}

Solution: Implement retry logic with exponential backoff, or use a Service Account for higher limits.

Related Topics


Powered by Converge