From c343e0aacba899aa3670398ae597156d9be5d286 Mon Sep 17 00:00:00 2001 From: LautaroPetaccio Date: Wed, 6 May 2026 23:07:24 -0300 Subject: [PATCH] fix: preserve original error info on unexpected deploy failures The catch-all in deployEntity replaced any thrown error with the bare string "There was an error deploying the entity" before returning an InvalidResult. That string is what propagates through deployDownloadedEntity and ends up persisted in failed_deployments.error_description, so once the live server log rotates there is no way to tell what actually failed. Append `${error.name}: ${error.message}` to the persisted message so the failure record itself carries the root cause (DB error, storage error, unexpected throw out of pointerManager / activeEntities, etc.). --- content/src/logic/deployment-service/component.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/src/logic/deployment-service/component.ts b/content/src/logic/deployment-service/component.ts index c939ae6d8..21e612b37 100644 --- a/content/src/logic/deployment-service/component.ts +++ b/content/src/logic/deployment-service/component.ts @@ -413,10 +413,12 @@ export function createDeploymentService( // TODO: review this return storeResult.auditInfoComplete.localTimestamp || Date.now() - } catch (error) { + } catch (error: any) { logger.error(`There was an error deploying the entity: ${error}`, { entityId }) + const name = error?.name ?? 'Error' + const message = error?.message ?? 'unknown error' return InvalidResult({ - errors: [`There was an error deploying the entity`] + errors: [`There was an error deploying the entity: ${name}: ${message}`] }) } finally { components.pointerLockManager.release(entity.type, entity.pointers)