Skip to content

Retry not behaving as expected #47

Open
@omikader

Description

@omikader

We noticed that certain unretryable unstructured errors like negative seek value -1 and [Errno 22] Invalid argument were being swallowed by the default retry mechanism provided by the JS client.

Since the JS client does not allow overriding the retryable statusCode values to something more restrictive (e.g. we only want to retry 503), we created our own BackoffStrategy in order to fail sooner, e.g.

new BackoffStrategy(
  500, // initialInterval (ms)
  10 * 1000, // maxInterval (ms)
  1.5, // exponent
  20 * 1000, // maxElapsedTime (ms)
)

However, in our testing, we found that no retry requests are ever actually being sent. We suspect that this is due to how Speakeasy may be consuming the file buffer the first time but we cannot confirm. For now, we've disabled retries at the client level entirely by setting strategy: "none" but this is not our ideal state.

We are on version 0.10.6.

TL;DR

  • Can you make the retry status codes configurable to the end user?
  • Are we using the retry mechanism correctly? Can you confirm our behavior vs the expected behavior?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions