{"record":{"id":"0edd5db16cf0f881","repo":"apache/druid","slug":"could-not-fetch-partitions-for-topic-stream-s","errorCode":null,"errorMessage":"Could not fetch partitions for topic/stream [%s]","messagePattern":"Could not fetch partitions for topic/stream \\[(.+?)\\]","errorType":"exception","errorClass":"StreamException","httpStatus":null,"severity":"error","filePath":"extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/supervisor/RabbitStreamSupervisor.java","lineNumber":422,"sourceCode":"      return new LagStats(0, 0, 0);\n    }\n\n    return aggregatePartitionLags(partitionRecordLag);\n  }\n\n  @Override\n  public void updatePartitionLagFromStream()\n  {\n    getRecordSupplierLock().lock();\n\n    Set<String> partitionIds;\n    try {\n      partitionIds = recordSupplier.getPartitionIds(getIoConfig().getStream());\n    }\n    catch (Exception e) {\n      log.warn(\"Could not fetch partitions for topic/stream [%s]\", getIoConfig().getStream());\n      getRecordSupplierLock().unlock();\n      throw new StreamException(e);\n    }\n\n    Set<StreamPartition<String>> partitions = partitionIds\n        .stream()\n        .map(e -> new StreamPartition<>(getIoConfig().getStream(), e))\n        .collect(Collectors.toSet());\n\n    latestSequenceFromStream = partitions.stream()\n        .collect(Collectors.toMap(StreamPartition::getPartitionId, recordSupplier::getLatestSequenceNumber));\n\n    getRecordSupplierLock().unlock();\n\n  }\n\n  @Override\n  public Map<String, Long> getLatestSequencesFromStream()\n  {\n    return latestSequenceFromStream != null ? latestSequenceFromStream : new HashMap<>();","sourceCodeStart":404,"sourceCodeEnd":440,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/supervisor/RabbitStreamSupervisor.java#L404-L440","documentation":"RabbitStreamSupervisor.updatePartitionLagFromStream could not obtain the partition IDs for the configured stream — the record supplier threw while querying RabbitMQ. The supervisor logs a warning, releases the record-supplier lock, and rethrows as a StreamException, since partition lag cannot be computed without partitions. Common causes are connectivity failures or a nonexistent/deleted stream.","triggerScenarios":"Thrown at extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/supervisor/RabbitStreamSupervisor.java:422 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the wrapped exception for the root cause (connection refused, auth failure, stream not found).","Verify the RabbitMQ stream exists and the configured username/password/port are correct.","Check network reachability from the supervisor/overlord host to the RabbitMQ stream nodes.","After fixing connectivity, the supervisor can re-attempt lag computation on the next cycle."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}