Version:
Only show these results:

Nylas errors and HTTP status codes

ℹ️ The v2-specific section on mail sync states has been moved. See the Account sync status documentation for this information.

This page is a reference list of API responses, error types, and HTTP status codes that you might encounter when working with Nylas.

Error types

Error messages include a JSON object that contains a standard set of attributes, including the error's type and a human-readable message string. These are designed to make debugging easier and allow for you to handle different scenarios that produce the same HTTP error code.

Error Type HTTP Code Default Message
api.authentication_error 401 Unauthorized
api.internal_error 500 Internal error, contact administrator.
api.invalid_request_error 400 Bad request
api.invalid_request_payload 400 Invalid JSON payload format.
api.provider_error 504 Provider error message. (Specific Provider HTTP code response possible.)
api.not_found_error 404 Resource not found.
api.partial_not_found_error 404 Partially missing data from requested resource(s).
api.partial_success_error 504 One or more objects could not be handled. (Specific Provider HTTP code response possible.)
api.rate_limit_error 429 Rate limit error.
token.unauthorized_access 400 Invalid API key.
token.exchange_failed 400 OAuth 2.0 token exchange failed.
grant.callback_uri_not_allowed 400 callback_uri is not allowed for this connector.
grant.login_id_invalid 400 Login ID or request is invalid or has expired.
grant.not_found 404 Grant not found.
grant.refresh_token_invalid 401 Invalid refresh_token supplied to Grant.
grant.provider_required 400 Provider field is required.
grant.reauth_email_invalid 400 Email addresses did not match during re-authentication.
grant.scopes_conflict 400 Some requested scopes were not included in the completed hosted auth, resulting in denied authentication.
grant.gmail_domain_invalid 400 Gmail domain is not allowed, resulting in denied authentication.
grant.access_denied 403 Access to Grant denied.
grant.invalid_authentication 400 Authentication failed due to wrong input or credentials.
grant.provider_not_responding 400 Provider not responding.
grant.auth_limit_reached 400 Maximum number of retries reached for hosted auth.
grant.imap_type_mismatch 400 IMAP provider mismatch.
grant.provider_mismatch 400 Grant provider mismatch.
grant.imap_autodetect_fail 400 IMAP auto-detection failed. Please provide additional IMAP configuration (host, port).
grant.hosted_login_expired 400 Hosted login expired.
grant.session_revoke_failed 400 Session revoke failed.
grant.provider_id_token_missing 400 Provider did not return ID token for authorized account.
connector.not_found 404 Connector not found.
connector.provider_not_supported 400 Provider invalid or not supported.
connector.provider_settings_invalid 400 Provider settings not supported.
connector.provider_settings_secret_required 400 Provider settings and Secret both are required if one needs to change.
connector.already_exists 400 Connector already exists.
connector.problem 400 Issues found with connector's settings or configuration.
credential.not_found 404 Credential not found.
credential.already_exists 400 Credential with this name for given connector already exists.
credential.missing_param 400 Credential is missing some essential values in its settings.
connector.no_longer_exists 400 Connector no longer exists.
oauth2.provider_code_request_failed 400 Provider refused to return refresh_token using code.
oauth2.oauth_failed 400 Hosted OAuth failed due to rejection by provider or user refusing consent.
oauth2.invalid_client 400 OAuth client not found.
oauth2.invalid_grant 400 Error creating grant with provided OAuth parameters.
oauth2.redirect_uri_mismatch 400 Redirect URI not allowed.
oauth2.unsupported_grant_type 400 Invalid grant_type.
oauth2.invalid_token 401 Token expired or revoked.
oauth2.oauth_provider_error 400 Error from OAuth 2.0 provider.
oauth2.origin_not_allowed 400 Error origin not allowed for callback_uri for platform:js.
oauth2.provider_code_exchange_failed 403 Code exchange to get access/refresh token failed on provider's side.
application.missing_required_parameter 400 One of the platform's required parameters is missing.
application.not_found 404 Application not found.
application.callback_uris_not_found 404 Application's redirect URIs not found.
application.callback_uri_is_not_valid 400 Application's redirect URI is not valid.
application.id_not_allowed 403 Application ID not allowed.
common.scope_not_allowed 400 One or more provided scopes is not allowed.
common.secret_not_found 404 Searched Secret record not found.
v3_migration.account_to_grant_migration_failed 400 Account migration to a V3 grant failed.
v3_migration.translate_resource_failed 400 Failed to translate Nylas resource ID to Provider resource ID.
v3_migration.link_apps_failed 400 Failed to link v2 & v3 applications.
v3_migration.app_import_failed 400 Failed to import v2 application's settings to v3 application.
v3_migration.job_start_failed 400 Failed start migration jobs.
v3_migration.get_jobs_failed 404 Failed to get info of migration jobs.

For more information about specific error codes, see the following documentation:

Sample HTTP error response

The following JSON snippet is an example of an HTTP error response that you might receive from Nylas.

{
"request_id": "1f58962d-9967-42de-9dd3-3f55aa1a216a",
"error": {
"type": "invalid_request_error",
"message": "The message_id parameter is required."
}
}

Sample HTTP provider error response

HTTP errors include the provider_error parameter only when they're generated by the provider or connector, as in the following example.

{
"request_id": "1f58962d-9967-42de-9dd3-3f55aa1a216a",
"error": {
"type": "invalid_request_error",
"message": "The message_id parameter is required.",
"provider_error": {
// Provider error response
}
}
}

HTTP status codes

Nylas uses a set of conventional HTTP response codes to indicate the success or failure of API requests.

HTTP Status Code Description
200 OK Everything worked as expected.
202 Not Ready The request was valid, but the resource wasn't ready. Retry the request with exponential backoff.
400 Bad Request The request was malformed or missing a required parameter.
401 Unauthorized Could not verify access credentials. No valid API key or access_token was provided.
402 Request Failed or Payment Required The request parameters were valid, but the request failed or you must add a credit card to your organization.
403 Forbidden The request includes authentication errors, blocked developer applications, or cancelled accounts.
404 Not Found The requested item doesn't exist.
405 Method Not Allowed You tried to access a resource using an invalid method.
410 Gone The requested resource has been removed from the Nylas servers.
413 Request Entity too Large The transmitted data value exceeds the capacity limit for Send, v3 Attachments, or v2 Files requests.
418 I'm a Teapot 🫖
422 Sending Error This response was returned during the sending process.
429 Too Many Requests Slow down! If you legitimately require this many requests, contact Nylas Support.
500, 502, and 503 Server Errors An error occurred in the Nylas server. If this persists, see the Nylas platform status page or contact Nylas Support.
504 Provider Error Wait and try again later. If the problem persists, check with your service provider.

⚠️ If you make a PUT request that contains no body content, Nylas returns a 400 Empty Request Body error.

For more information, see Wikipedia's list of HTTP status codes or the WebFX HTTP status codes database.