{"record":{"id":"2c9e9a4f26403a0e","repo":"flowable/flowable-engine","slug":"could-not-find-a-table-with-name-tablename-2c9e9a","errorCode":null,"errorMessage":"Could not find a table with name '${tableName}'.","messagePattern":"Could not find a table with name '(.+?)'\\.","errorType":"http","errorClass":"FlowableObjectNotFoundException","httpStatus":404,"severity":"error","filePath":"modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/TableResource.java","lineNumber":73,"sourceCode":"    })\n    @GetMapping(value = \"/management/tables/{tableName}\", produces = \"application/json\")\n    public TableResponse getTable(@ApiParam(name = \"tableName\") @PathVariable String tableName) {\n        if (restApiInterceptor != null) {\n            restApiInterceptor.accessTableInfo();\n        }\n        \n        Map<String, Long> tableCounts = managementService.getTableCount();\n\n        TableResponse response = null;\n        for (Entry<String, Long> entry : tableCounts.entrySet()) {\n            if (entry.getKey().equals(tableName)) {\n                response = restResponseFactory.createTableResponse(entry.getKey(), entry.getValue());\n                break;\n            }\n        }\n\n        if (response == null) {\n            throw new FlowableObjectNotFoundException(\"Could not find a table with name '\" + tableName + \"'.\", String.class);\n        }\n        return response;\n    }\n}\n","sourceCodeStart":55,"sourceCodeEnd":78,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/TableResource.java#L55-L78","documentation":"GET /management/tables/{tableName} (single table metadata) iterates the table name/count map from managementService and, if no entry matches the requested tableName, throws FlowableObjectNotFoundException. Unlike the data endpoint this checks against the exposed table list rather than metadata lookup, but the meaning is the same: no such table exists.","triggerScenarios":"GET /management/tables/{tableName} where {tableName} is not among the names returned by GET /management/tables (typo, wrong schema, or case mismatch).","commonSituations":"Typo or wrong-case table name; querying after a flowable upgrade changed table names; wrong database configured in the REST application properties.","solutions":["Call GET /management/tables to enumerate valid table names and pick the exact one.","Correct spelling and casing of the table name.","Verify datasource configuration targets the intended flowable database.","Catch the resulting HTTP 404 client-side and show a helpful 'table not found' message."],"exampleFix":"// before\nGET /management/tables/act_ru_task\n// after\nGET /management/tables/ACT_RU_TASK","handlingStrategy":"validation","validationCode":"const names = (await get('/management/tables')).data.map(t => t.name);\nif (!names.includes(tableName)) throw new Error(`Unknown table ${tableName}`);","typeGuard":null,"tryCatchPattern":"try { return await getTable(name); } catch (e) { if (e.status === 404) return null; throw e; }","preventionTips":["Cache the table list from GET /management/tables and validate against it.","Use exact-case names as returned by the API.","After flowable upgrades, re-check table names."],"tags":["rest-api","not-found","management-api","table"],"backgroundTag":"resource-not-found","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-18T11:17:12.947Z"}