Skip to content

Commit 37e6ad6

Browse files
committed
fix: invalid deferred data hanging response
1 parent eccc180 commit 37e6ad6

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

.changeset/deferred-data-hang.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@remix-run/react": patch
3+
---
4+
5+
warn and resolve null for invalid deferred data result to avoid unexpected hanging

packages/remix-react/components.tsx

+12-6
Original file line numberDiff line numberDiff line change
@@ -997,16 +997,22 @@ export function Scripts(props: ScriptProps) {
997997
JSON.stringify(toSerialize)
998998
)})`;
999999
} else {
1000-
if (typeof trackedPromise._data === "undefined") {
1001-
throw new Error(
1002-
`The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise?`
1000+
let data = trackedPromise._data;
1001+
if (typeof data === "undefined") {
1002+
console.error(
1003+
`Deferred data for ${routeId} ${key} resolved to undefined, defaulting to null.`
10031004
);
1005+
data = null;
1006+
}
1007+
let serializedData = "null";
1008+
try {
1009+
serializedData = JSON.stringify(data);
1010+
} catch (error) {
1011+
console.error(error);
10041012
}
10051013
return `${JSON.stringify(
10061014
key
1007-
)}:__remixContext.p(${escapeHtml(
1008-
JSON.stringify(trackedPromise._data)
1009-
)})`;
1015+
)}:__remixContext.p(${escapeHtml(serializedData)})`;
10101016
}
10111017
}
10121018
})

0 commit comments

Comments
 (0)