{"record":{"id":"e5fff15dcd78bdd2","repo":"SillyTavern/SillyTavern","slug":"bad-request-e5fff1","errorCode":null,"errorMessage":"Bad Request","messagePattern":"Bad Request","errorType":"http","errorClass":null,"httpStatus":400,"severity":"error","filePath":"src/endpoints/backgrounds.js","lineNumber":70,"sourceCode":"        const imageFolderMap = {};\n        for (const [relativePath, meta] of Object.entries(index.images)) {\n            if (Array.isArray(meta.folderIds) && meta.folderIds.length > 0) {\n                // Strip the directory prefix to get just the filename\n                const filename = relativePath.split('/').pop() || relativePath;\n                imageFolderMap[filename] = meta.folderIds;\n            }\n        }\n\n        response.json({ folders, imageFolderMap });\n    } catch (error) {\n        console.error('[Backgrounds] Folders endpoint error:', error);\n        response.status(500).json({ error: 'Internal server error.' });\n    }\n});\n\nrouter.post('/delete', getFileNameValidationFunction('bg'), async function (request, response) {\n    try {\n        if (!request.body) return response.sendStatus(400);\n\n        if (request.body.bg !== sanitize(request.body.bg)) {\n            console.error('Malicious bg name prevented');\n            return response.sendStatus(403);\n        }\n\n        const fileName = path.join(request.user.directories.backgrounds, sanitize(request.body.bg));\n\n        if (!fs.existsSync(fileName)) {\n            console.error('BG file not found');\n            return response.sendStatus(400);\n        }\n\n        fs.unlinkSync(fileName);\n        invalidateThumbnail(request.user.directories, 'bg', request.body.bg);\n\n        // Remove metadata for deleted image\n        const relativePath = path.join('backgrounds', request.body.bg);","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/SillyTavern/SillyTavern/blob/8172dcd0ee672d3cd9a5e5f7af134f91a45cd2b8/src/endpoints/backgrounds.js#L52-L88","documentation":"Error \"Bad Request\" thrown in SillyTavern/SillyTavern.","triggerScenarios":"Thrown at src/endpoints/backgrounds.js:70 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Send a request body containing the bg filename to delete.","Provide a valid background filename that exists in the backgrounds folder."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8172dcd0ee672d3cd9a5e5f7af134f91a45cd2b8","analyzedAt":"2026-08-13T07:48:40.832Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}