diff --git a/src/app/App.tsx b/src/app/App.tsx index 271adc18..c3b54d76 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -3431,7 +3431,7 @@ export function App({ store, initialStatusMessage }: AppProps) { try { return await loadImageAssetFromStorage(storage, asset); } catch (error) { - if (await restoreDeletedStoredAsset(storage, asset)) { + if (storage !== null && (await restoreDeletedStoredAsset(storage, asset))) { return loadImageAssetFromStorage(storage, asset); } diff --git a/src/assets/starter-environment-assets.ts b/src/assets/starter-environment-assets.ts index c62b74ab..b539e948 100644 --- a/src/assets/starter-environment-assets.ts +++ b/src/assets/starter-environment-assets.ts @@ -174,7 +174,7 @@ export function createStarterEnvironmentAssetRegistry(): Record< export function isStarterEnvironmentImageAsset( asset: ProjectAssetRecord | ImageAssetRecord -): asset is ImageAssetRecord { +): boolean { return ( asset.kind === "image" && asset.storageKey.startsWith(STARTER_ENVIRONMENT_STORAGE_KEY_PREFIX) diff --git a/src/serialization/project-package.ts b/src/serialization/project-package.ts index 3851ed71..1382ce01 100644 --- a/src/serialization/project-package.ts +++ b/src/serialization/project-package.ts @@ -346,6 +346,10 @@ export async function loadProjectPackage( throw new Error("Project load failed: project asset storage is unavailable for asset-backed scenes."); } + if (storage === null) { + return document; + } + const packagedAssetRecords = buildStoredAssetRecordsFromPackage(entries, document); for (const asset of bundledAssets) { @@ -367,7 +371,10 @@ export async function loadProjectPackage( continue; } - previousStoredAssets.set(asset.storageKey, await storage.getAsset(asset.storageKey)); + previousStoredAssets.set( + asset.storageKey, + await storage.getAsset(asset.storageKey) + ); await storage.putAsset(asset.storageKey, packagedAsset); writtenStorageKeys.push(asset.storageKey); }