Skip to content

Commit 7101c7e

Browse files
committed
fix(uploads): regenerate fileId per insert retry; require cloud storage for register
1 parent 888f286 commit 7101c7e

1 file changed

Lines changed: 10 additions & 9 deletions

File tree

apps/sim/lib/uploads/contexts/workspace/workspace-file-manager.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -295,21 +295,21 @@ export async function registerUploadedWorkspaceFile(params: {
295295
}): Promise<RegisterUploadedWorkspaceFileResult> {
296296
const { workspaceId, userId, key, originalName, contentType, size } = params
297297

298+
if (!hasCloudStorage()) {
299+
throw new Error('Direct-upload registration requires cloud storage')
300+
}
301+
298302
if (parseWorkspaceFileKey(key) !== workspaceId) {
299303
throw new Error('Storage key does not belong to this workspace')
300304
}
301305

302-
let verifiedSize = size
303-
if (hasCloudStorage()) {
304-
const head = await headObject(key, 'workspace')
305-
if (!head) {
306-
throw new Error('Uploaded object not found in storage')
307-
}
308-
verifiedSize = head.size
306+
const head = await headObject(key, 'workspace')
307+
if (!head) {
308+
throw new Error('Uploaded object not found in storage')
309309
}
310+
const verifiedSize = head.size
310311

311312
const cleanupOrphan = async (reason: string) => {
312-
if (!hasCloudStorage()) return
313313
try {
314314
await deleteFile({ key, context: 'workspace' })
315315
} catch (deleteError) {
@@ -328,7 +328,7 @@ export async function registerUploadedWorkspaceFile(params: {
328328
*/
329329
const existing = await getFileMetadataByKey(key, 'workspace')
330330

331-
const fileId = existing?.id ?? `wf_${generateShortId()}`
331+
let fileId = existing?.id ?? ''
332332
let displayName = existing?.originalName ?? ''
333333
let created = false
334334

@@ -341,6 +341,7 @@ export async function registerUploadedWorkspaceFile(params: {
341341

342342
let lastInsertError: unknown
343343
for (let attempt = 0; attempt < MAX_UPLOAD_UNIQUE_RETRIES; attempt++) {
344+
fileId = `wf_${generateShortId()}`
344345
displayName = await allocateUniqueWorkspaceFileName(workspaceId, originalName)
345346
try {
346347
await insertFileMetadata({

0 commit comments

Comments
 (0)