{"record":{"id":"ac74285f4c008d06","repo":"HeyPuter/puter","slug":"app-name-already-in-use","errorCode":"app_name_already_in_use","errorMessage":"Failed to dedupe app name","messagePattern":"Failed to dedupe app name","errorType":"http","errorClass":"HttpError","httpStatus":400,"severity":"error","filePath":"src/backend/drivers/apps/AppDriver.js","lineNumber":237,"sourceCode":"        });\n        if (joinedApp) {\n            return joinedApp;\n        }\n        await this.#ensureIndexUrlNotAlreadyInUse({\n            indexUrl: fields.index_url,\n        });\n\n        // Name conflict handling\n        if (await this.appStore.existsByName(fields.name)) {\n            if (options?.dedupe_name) {\n                let candidate;\n                let i = 0;\n                do {\n                    const randString = Math.random().toString(36).slice(2, 6);\n                    candidate = `${fields.name}-${randString}`;\n\n                    if (i >= 3)\n                        throw new HttpError(400, 'Failed to dedupe app name', {\n                            legacyCode: 'app_name_already_in_use',\n                        });\n                    i++;\n                } while (await this.appStore.existsByName(candidate));\n                fields.name = candidate;\n            } else {\n                throw new HttpError(\n                    400,\n                    'An app with this name already exists',\n                    { legacyCode: 'app_name_already_in_use' },\n                );\n            }\n        }\n\n        const filetypes = fields.filetype_associations;\n        delete fields.filetype_associations;\n\n        // Ownership is passed as a separate, privileged arg — the store","sourceCodeStart":219,"sourceCodeEnd":255,"githubUrl":"https://github.com/HeyPuter/puter/blob/908ec23eda38526170322c3edf71ba45ecb1ca95/src/backend/drivers/apps/AppDriver.js#L219-L255","documentation":"Error \"Failed to dedupe app name\" thrown in HeyPuter/puter.","triggerScenarios":"Thrown at src/backend/drivers/apps/AppDriver.js:237 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry with a different app name.","Check for conflicting existing apps that block name deduplication."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"908ec23eda38526170322c3edf71ba45ecb1ca95","analyzedAt":"2026-08-12T20:53:15.911Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}