Skip to content

Commit 693f296

Browse files
committed
fix(cloudflare): handle null upload result (#367)
1 parent ddf5508 commit 693f296

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

alchemy/src/cloudflare/worker-assets.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import fs from "node:fs/promises";
33
import path from "node:path";
44
import { AsyncQueue } from "../util/async-queue.ts";
55
import { getContentType } from "../util/content-type.ts";
6+
import { CloudflareApiError } from "./api-error.ts";
67
import type { CloudflareApi } from "./api.ts";
78
import type { Assets } from "./assets.ts";
89
import type { AssetsConfig, WorkerProps } from "./worker.ts";
@@ -84,8 +85,26 @@ export async function uploadAssets(
8485
const sessionData =
8586
(await uploadSessionResponse.json()) as UploadSessionResponse;
8687

88+
if (!sessionData?.success) {
89+
if (sessionData?.errors) {
90+
throw new CloudflareApiError(
91+
`Failed to start assets upload session:\n${sessionData.errors
92+
.map((error) => `- ${error.code}: ${error.message}`)
93+
.join("\n")}`,
94+
uploadSessionResponse,
95+
);
96+
}
97+
throw new CloudflareApiError(
98+
`Failed to start assets upload session: ${uploadSessionResponse.statusText}`,
99+
uploadSessionResponse,
100+
);
101+
}
102+
87103
// If there are no buckets, assets are already uploaded or empty
88-
if (!sessionData.result.buckets || sessionData.result.buckets.length === 0) {
104+
if (
105+
!sessionData?.result?.buckets ||
106+
sessionData.result.buckets.length === 0
107+
) {
89108
return {
90109
completionToken: sessionData.result.jwt,
91110
assetConfig: processedConfig,

0 commit comments

Comments
 (0)