{"record":{"id":"56d9dcc018b89872","repo":"prestodb/presto","slug":"generic-internal-error-56d9dc","errorCode":"GENERIC_INTERNAL_ERROR","errorMessage":"Query %s already registered","messagePattern":"Query (.+?) already registered","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-main/src/main/java/com/facebook/presto/execution/SqlQueryManager.java","lineNumber":309,"sourceCode":"    public QueryState getQueryState(QueryId queryId)\n    {\n        return queryTracker.getQuery(queryId).getState();\n    }\n\n    @Override\n    public void recordHeartbeat(QueryId queryId)\n    {\n        queryTracker.tryGetQuery(queryId)\n                .ifPresent(QueryExecution::recordHeartbeat);\n    }\n\n    @Override\n    public void createQuery(QueryExecution queryExecution)\n    {\n        requireNonNull(queryExecution, \"queryExecution is null\");\n\n        if (!queryTracker.addQuery(queryExecution)) {\n            throw new PrestoException(GENERIC_INTERNAL_ERROR, format(\"Query %s already registered\", queryExecution.getQueryId()));\n        }\n\n        queryExecution.addFinalQueryInfoListener(finalQueryInfo -> {\n            try {\n                queryMonitor.queryCompletedEvent(finalQueryInfo);\n            }\n            finally {\n                // execution MUST be added to the expiration queue or there will be a leak\n                queryTracker.expireQuery(queryExecution.getQueryId());\n            }\n        });\n\n        stats.trackQueryStats(queryExecution);\n        // TODO(pranjalssh): Support plan statistics tracking for other query managers\n        historyBasedPlanStatisticsTracker.updateStatistics(queryExecution);\n\n        embedVersion.embedVersion(queryExecution::start).run();\n    }","sourceCodeStart":291,"sourceCodeEnd":327,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main/src/main/java/com/facebook/presto/execution/SqlQueryManager.java#L291-L327","documentation":"SqlQueryManager.createQuery attempted to register a QueryExecution whose query ID is already present in the query tracker. Registration is refused to avoid two executions sharing one ID; this indicates duplicate submission of the same query id and is treated as an internal error.","triggerScenarios":"Thrown at presto-main/src/main/java/com/facebook/presto/execution/SqlQueryManager.java:309 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check for retry logic or concurrent callers reusing a generated QueryId","Report as an internal coordinator bug if reproducible"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}