-
Notifications
You must be signed in to change notification settings - Fork 295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stellar SDK doesn't fully support HTTP2 #612
Comments
Unfortunately, the HTTP client we use under the hood doesn't support HTTP2 yet (see axios/axios#1175). However, there may be a higher-level workaround for this. I'll be looking closer at error-handling in a broader sense in the coming weeks so this may get lumped into it. |
any news? |
Any news? |
Hey @Fomin2402, thanks for following up. Unfortunately, this has gotten de-prioritized for some time in lieu of other projects (AMMs, muxed accounts, scaling, etc. to name a few). Is the lack of HTTP/2 support a major blocker for you? |
@Shaptic |
@Shaptic any news? |
1 similar comment
@Shaptic any news? |
Have you experimented with the HTTP/2 adapter? I haven't tried it yet myself, but it should be possible to override the default adapter like so: import { Horizon } from '@stellar/stellar-sdk';
import { createHTTP2Adapter } from 'axios-http2-adapter';
Horizon.AxiosClient.defaults.adapter = createHTTP2Adapter(); |
Stellar SDK throws an error which is an instance of
Error
for 404 responses with HTTP2.Version: stellar-sdk 7.0.0
To Reproduce
Try to load an account, which does not exist.
Expected behavior
Stellar SDK should throw
NotFoundError
for HTTP2 404 responses.Additional context
Status-line
in HTTP 1.1 consists ofHTTP-Version Status-Code Reason-Phrase
(rfc2616 spec here)BUT in HTTP2
Reason-Phrase
is deprecated (rfc7540 spec here):JS Stellar-SDK needs status text (reason phrase) to return a correct error object. It creates an error of the
NotFoundError
class only if the status text is present. See the code:js-stellar-sdk/src/call_builder.ts
Line 382 in 84d10c6
We later check if an error is an instance of
NotFoundError
. Here is an example of this check in the docs: https://developers.stellar.org/docs/tutorials/send-and-receive-payments/#send-a-paymentThere is no status text in the HTTP2 response, and we cannot properly determine what kind of error occurred (parsing an error message is not a good idea).
The text was updated successfully, but these errors were encountered: