Skip to content

Plugin list request has a hardcoded 5 second timeout, fails on high latency or proxied connections #3640

Description

@CaptainMirage

What are you trying to do, and what do you expect to happen?

Trying to open the plugin store and install a plugin. Expected the plugin list to load like it always has before.

What happens instead?

The plugin list fails to load with a timeout, both from the main CDN (jsdelivr) and the mirror CDN (blckbn.ch). Confirmed this is not a permissions or connectivity issue on my end. Traced it to a hardcoded 5 second timeout in js/plugin_loader.ts on the request that fetches the plugin list:

$.ajax({
    cache: false,
    url: Plugins.api_path+'.json',
    timeout: 5_000,
    ...

If round trip latency to the CDN is close to or above 5 seconds, this request fails every time even though the CDN is healthy and reachable. Confirmed with a raw curl request to the same jsdelivr URL, which succeeded with a valid TLS handshake and valid response, but took about 6 seconds round trip, already over the cutoff.

This affects anyone on a connection with real world added latency, especially proxy or VPN setups with multiple hops, or system wide transparent proxy setups (TUN mode) rather than app level SOCKS5/HTTP proxy configuration. Suggest making the timeout configurable, or at minimum raising the default, since 5 seconds is very tight for anything other than a fast direct connection.

Model format in which the issue occurs

N/A, this happens before any model is created or loaded. It is the plugin store itself failing to load.

Blockbench variant

Program, PWA, Website

Blockbench version

5.1.4

Operating System

EndeavourOS (Arch-based), Flatpak installation, linux-g14 kernel

Installed Blockbench plugins

None installed yet, this is what is being blocked

Are there any console errors?

yep

plugin_loader.ts:1032 Could not connect to plugin server: timeout {readyState: 0, ...}

Metadata

Metadata

Assignees

No one assigned

    Labels

    improvementsomething that works as intended but could be improved to work better

    Projects

    Status
    No status
    Status
    In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions