CrowBar | Errors | Corvus Skip to main content

Errors

How rejected requests and failed operations are reported, and what the common messages mean.

Requests rejected before the operation runs

Requests rejected before the GraphQL operation runs, such as a missing or invalid API key, return a 400, 401, or 404 status (see Authentication). A request body with no query returns a 400 status.

Sign in to the Developer Portal to see the cause of each status and what to do.

Failed operations

Once the operation runs, the response status is HTTP 200 even when the operation fails. Always check the response body for an errors array. Each error has a message, and the path shows which field failed. That field is null. If the field is non-null, the null moves up to its parent: for a top-level field such as quoteRequest, data itself is null (see Partial success).
Copied
{  "data": null,  "errors": [    {      "message": "not_found",      "locations": [{ "line": 2, "column": 3 }],      "path": ["quoteRequest"]    }  ]}

Common messages

Each message is the message of an entry in the errors array. Messages in angle brackets, such as <status>, name a value that changes.

Common messages
Code Cause What to do Returned by
unauthorized Your brokerage or user does not have access to the record, or the operation or field is not available to API partners. Check that the record belongs to your brokerage. Select only the fields shown in these docs. Any operation, for example List Policies, Update Policyholder Contact
not_found The record does not exist, or it is not visible to your brokerage. Some operations return this instead of unauthorized for records that belong to another brokerage. Check the id, and that the record belongs to your brokerage. Get Quote Request, Get Policy Documents, Get Renewal Quote Request
invalid_nature_of_business The natureOfBusiness value is not a recognized NAICS code or nature of business name. Send a NAICS code, or a nature of business name exactly as it is listed on the Nature of Business page. Update Quote Request, Nature of Business
id or expiringPolicyNumber is required The request has neither an id nor an expiringPolicyNumber. Provide exactly one of id or expiringPolicyNumber. Get Renewal Quote Request
Broker cannot update status to <status> The status is not INCOMPLETE, SUBMITTED or CLOSED, the only values an API partner can set. Set the status to INCOMPLETE, SUBMITTED or CLOSED. Update Quote Request
Cannot resubmit a quote request unless its application type is 'form' or 'broker_api'. The RESUBMIT action was used on a quote request that an underwriter has begun reviewing or has shared. Contact the underwriter directly to change the submission. Query the underwriter's name and email with Get Quote Request. Update Quote Request, Get Quote Request
coverage_effective_at cannot be older than 7 days ago. The coverageEffectiveAt date is more than 7 days in the past. Send a coverage start date within the last 7 days, or in the future. Update Quote Request
Cannot bind quote option from status <status> The quote request is not in the QUOTES_SHARED status, so its quote option cannot be bound. Bind a quote option only once the quote request has the QUOTES_SHARED status. Check the status with Get Quote Request. Bind Quote, Get Quote Request

Mutation validation errors

When a mutation fails validation, message is a JSON-encoded string, not plain text. Decoded, it is an object that maps each invalid field to a list of messages. Field names use snake_case (for example broker_message, not brokerMessage).

Copied
{  "data": {    "updateQuoteRequest": null  },  "errors": [    {      "message": "{\"broker_message\":[\"should be at most 10000 character(s)\"]}",      "locations": [{ "line": 2, "column": 3 }],      "path": ["updateQuoteRequest"]    }  ]}

To handle errors, try to parse each message as JSON. If the result is an object, read the messages for each field from it. Otherwise, treat the message as plain text.

Mutation validation errors
Code Cause What to do Returned by
broker_message The brokerMessage is longer than 10000 characters, so the message reads should be at most 10000 character(s). Shorten the brokerMessage to 10000 characters or fewer. Update Quote Request

Fields not available to API partners

If you select a field that API partners cannot read, it returns unauthorized. If that field is non-nullable, the error also nulls the object that contains it, so you lose the rest of that object's data. For example, selecting totalCount on the quoteRequests connection nulls the whole connection. Select only the fields shown in these docs.