Skip to content

Standardizing Timeout Error Responses #62

@stvoutsin

Description

@stvoutsin

As it stands and to the best of my knowledge TAP clients cannot reliably distinguish query timeouts from other failures.
Various services will return timeouts in different ways (different HTTP codes, error messages, connection drops).
This makes it very challenging for clients to identify, and perhaps recommend to a user an improved course of action.

An example of why standardizing this would be useful:
Many services have a short timeout for sync queries, but longer for async. A client interacting with this service
would then be able to identify that the sync query timed-out and either recommend use of async or implement some kind of retry logic.

Proposed Solution

Add something like this to DALI section 5.2 (Error Handling):

Services are urged to use HTTP 408 (Request Timeout) status code when a request takes more time to process than the server is willing to allot. 
This allows clients to distinguish timeouts from other failures and take an appropriate action.

Context

Emerged from pyvo discussion here:
astropy/pyvo#686

Metadata

Metadata

Assignees

No one assigned

    Labels

    futureKeep track of this for the future

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions