RoyalMist

RoyalMist

How to change request timeout of Phoenix Endpoint with Bandit

Hello :slight_smile:

I got a stupid question I cannot find a way to increase the default timeout of 60_000 microseconds.
A client of mine is currently uploading zips to my app and the size is currently too big for this default timeout.

After lokking at Bandit docs I put it like this:

config :bazzile, BazzileWeb.Endpoint,
    secret_key_base: secret_key_base,
    url: [host: host, scheme: "https", port: 443],
    check_origin: false,
    http: [
      ip: {0, 0, 0, 0, 0, 0, 0, 0},
      port: port,
      options: [
        read_timeout: 300_000
      ]
    ]

But it is not working. Any clue on this ?

Thanks a lot :slight_smile:

Most Liked

mtrudel

mtrudel

Creator of Bandit

Sorry for the late reply!

The option to set body read timeouts is actually set as part of the Plug.Conn.read_body/2 call; see Plug.Conn — Plug v1.20.2 (specifically the read_timeout parameter) for details.

The read_timeout parameter as you’re passing it above (note that the options field has recently changed to thousand_island_options) is concerned with read timeouts for operations not otherwise set via the Plug.Conn API, such as header reading, HTTP/2 frame reading, etc.

PJUllrich

PJUllrich

Author of Building Table Views with Phoenix LiveView

I just configured it like this:

  config :my_app, MyAppWeb.Endpoint,
    url: [host: host, port: 443, scheme: "https"],
    http: [
      ip: {0, 0, 0, 0, 0, 0, 0, 0},
      port: port,
      thousand_island_options: [
        # Wait 60s for the client to complete the connection/upload before forcibly shutting it (Default: 15s)
        shutdown_timeout: 60_000
      ]
    ],
    secret_key_base: secret_key_base

Where Next?

Popular in Questions Top

jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

Other popular topics Top

hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31494 112
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement