Skip to content

Commit f72f551

Browse files
authored
log request id on timeout (#90)
1 parent 71df9b8 commit f72f551

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/Substrate.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,9 @@ export class Substrate {
105105
const { signal } = abortController;
106106
const timeout = setTimeout(() => abortController.abort(), this.timeout);
107107

108+
const request = new Request(url, this.requestOptions(req, signal));
109+
const requestId = request.headers.get("x-substrate-request-id");
108110
try {
109-
const request = new Request(url, this.requestOptions(req, signal));
110111
const apiResponse = await fetch(request);
111112

112113
if (apiResponse.ok) {
@@ -120,7 +121,6 @@ export class Substrate {
120121

121122
return res;
122123
} else {
123-
const requestId = request.headers.get("x-substrate-request-id");
124124
throw new SubstrateError(
125125
`[Request failed] status=${apiResponse.status} statusText=${apiResponse.statusText} requestId=${requestId}`,
126126
);
@@ -129,7 +129,7 @@ export class Substrate {
129129
if (err instanceof Error) {
130130
if (err.name === "AbortError") {
131131
throw new RequestTimeoutError(
132-
`Request timed out after ${this.timeout}ms`,
132+
`Request timed out after ${this.timeout}ms requestId=${requestId}`,
133133
);
134134
// TODO: We could propagate timeout errors to nodes too, but I'm
135135
// not sure yet what might be easier for the user to manage.
@@ -156,8 +156,9 @@ export class Substrate {
156156
requestOptions.headers.set("Accept", "text/event-stream");
157157
requestOptions.headers.set("X-Substrate-Streaming", "1");
158158

159+
const request = new Request(url, requestOptions);
160+
const requestId = request.headers.get("x-substrate-request-id");
159161
try {
160-
const request = new Request(url, requestOptions);
161162
const response = await fetch(request);
162163
return await SubstrateStreamingResponse.fromRequestReponse(
163164
request,
@@ -167,7 +168,7 @@ export class Substrate {
167168
if (err instanceof Error) {
168169
if (err.name === "AbortError") {
169170
throw new RequestTimeoutError(
170-
`Request timed out after ${this.timeout}ms`,
171+
`Request timed out after ${this.timeout}ms requestId=${requestId}`,
171172
);
172173
// TODO: We could propagate timeout errors to nodes too, but I'm
173174
// not sure yet what might be easier for the user to manage.

0 commit comments

Comments
 (0)