{"record":{"id":"545f7540c70cd750","repo":"apache/seatunnel","slug":"the-user-is-not-configured-to-enable-connector-pac","errorCode":null,"errorMessage":"The user is not configured to enable connector package service, can not get connector package service service from master node.","messagePattern":"The user is not configured to enable connector package service, can not get connector package service service from master node\\.","errorType":"exception","errorClass":"SeaTunnelEngineException","httpStatus":null,"severity":"error","filePath":"seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/CoordinatorService.java","lineNumber":2282,"sourceCode":"        long rejectionCount =\n                ((ThreadPoolStatus.RejectionCountingHandler)\n                                threadPoolExecutor.getRejectedExecutionHandler())\n                        .getRejectionCount();\n        long queueTaskSize = threadPoolExecutor.getQueue().size();\n        return new ThreadPoolStatus(\n                threadPoolExecutor.getActiveCount(),\n                threadPoolExecutor.getCorePoolSize(),\n                threadPoolExecutor.getMaximumPoolSize(),\n                threadPoolExecutor.getPoolSize(),\n                threadPoolExecutor.getCompletedTaskCount(),\n                threadPoolExecutor.getTaskCount(),\n                queueTaskSize,\n                rejectionCount);\n    }\n\n    public ConnectorPackageService getConnectorPackageService() {\n        if (connectorPackageService == null) {\n            throw new SeaTunnelEngineException(\n                    \"The user is not configured to enable connector package service, can not get connector package service service from master node.\");\n        }\n        return connectorPackageService;\n    }\n\n    public PendingJobsResponse getPendingJobs(Map<String, String> tags, Long jobId, int limit) {\n        Collection<PendingJobInfo> allPendingJobs =\n                new ArrayList<>(pendingJobQueue.getJobIdMap().values());\n\n        List<PendingJobInfo> selectedJobs = new ArrayList<>();\n        if (jobId != null) {\n            PendingJobInfo pendingJobInfo = pendingJobQueue.getById(jobId);\n            if (pendingJobInfo != null) {\n                selectedJobs.add(pendingJobInfo);\n            }\n        } else {\n            selectedJobs.addAll(allPendingJobs);\n            selectedJobs.sort(Comparator.comparingLong(PendingJobInfo::getEnqueueTimestamp));","sourceCodeStart":2264,"sourceCodeEnd":2300,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/CoordinatorService.java#L2264-L2300","documentation":"CoordinatorService.getConnectorPackageService throws SeaTunnelEngineException when connectorPackageService was never initialized, i.e. the connector package service feature was not enabled in the engine configuration. Callers asking for the connector package service on a cluster where the user did not configure it cannot be served.","triggerScenarios":"Calling getConnectorPackageService (directly or via operations that fetch/upload connector packages, e.g. REST connector endpoints or console upload) on a cluster started without the connector package service enabled in seatunnel.yaml.","commonSituations":"Using SeaTunnel Web / dashboard connector upload against a Zeta cluster whose seatunnel.yaml lacks the connector-package-service section; copying a client built for a feature-enabled cluster to a plain cluster.","solutions":["Enable the connector package service in seatunnel.yaml on the master node (configure the connector package service settings) and restart the cluster.","If you don't use connector package upload/download, stop calling this API and rely on the plugins directory / install-plugin.sh for connector jars.","Guard callers with a config check (is the service configured?) before invoking connector package operations."],"exampleFix":"// before: call upload unconditionally\nconnectorPackageService = coordinatorService.getConnectorPackageService();\n// after: check configuration first\nif (engineConfig.isConnectorPackageServiceEnabled()) {\n    connectorPackageService = coordinatorService.getConnectorPackageService();\n} else {\n    throw new IllegalStateException(\"Connector package service is not enabled in seatunnel.yaml\");\n}","handlingStrategy":"validation","validationCode":"// seatunnel.yaml must contain the connector package service config before starting:\n// seatunnel:\n//   connector-package-service: ...\nboolean enabled = seatunnelConfig.contains(\"connector-package-service\");\nif (!enabled) throw new IllegalStateException(\"Enable connector package service in seatunnel.yaml first\");","typeGuard":"ConnectorPackageService svc = coordinatorService.isConnectorPackageServiceConfigured()\n    ? coordinatorService.getConnectorPackageService() : null;\nif (svc == null) { /* skip package upload/download */ }","tryCatchPattern":"try {\n    return coordinatorService.getConnectorPackageService();\n} catch (SeaTunnelEngineException e) {\n    throw new IllegalStateException(\"Connector package service disabled; enable it in seatunnel.yaml\", e);\n}","preventionTips":["Enable the connector package service in seatunnel.yaml on the master node when using dashboard/upload features","Feature-check in client/UI code before invoking connector package APIs","Restart the whole cluster (not just the master) after enabling the config so all nodes share it"],"tags":["seatunnel","zeta-engine","feature-not-enabled","connector-package"],"backgroundTag":"feature-not-enabled","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}