apache/druid · error · WebApplicationException

No task information found for task with id: [%s]

Error message

No task information found for task with id: [%s]

What it means

OverlordResource throws this 500 error while listing task status entries when a TaskStatusPlus record has no datasource information. Tasks always carry a datasource, so a null value means the task record is incomplete or corrupted in the task storage metadata store. The resource aborts the whole listing rather than return entries with unknown authorization semantics.

Source

Thrown at indexing-service/src/main/java/org/apache/druid/indexing/overlord/http/OverlordResource.java:864

    java.util.Optional<Resource> destinationResource = task.getDestinationResource();
    destinationResource.ifPresent(resource -> resourceActions.add(new ResourceAction(resource, Action.WRITE)));
    if (authConfig.isEnableInputSourceSecurity()) {
      resourceActions.addAll(task.getInputSourceResources());
    }
    return resourceActions;
  }

  private List<TaskStatusPlus> securedTaskStatusPlus(
      List<TaskStatusPlus> collectionToFilter,
      @Nullable String dataSource,
      HttpServletRequest req
  )
  {
    Function<TaskStatusPlus, Iterable<ResourceAction>> raGenerator = taskStatusPlus -> {
      final String taskId = taskStatusPlus.getId();
      final String taskDatasource = taskStatusPlus.getDataSource();
      if (taskDatasource == null) {
        throw new WebApplicationException(
            Response.serverError().entity(
                StringUtils.format("No task information found for task with id: [%s]", taskId)
            ).build()
        );
      }
      return Collections.singletonList(
          new ResourceAction(new Resource(taskDatasource, ResourceType.DATASOURCE), Action.READ)
      );
    };
    if (dataSource != null) {
      //skip auth check here, as it's already done in getTasks
      return collectionToFilter;
    }
    return Lists.newArrayList(
        AuthorizationUtils.filterAuthorizedResources(
            req,
            collectionToFilter,
            raGenerator,

View on GitHub (pinned to 9b90983fd2)

Solutions

  1. Inspect the metadata store task table and find the row whose data_source column is NULL for the reported task id
  2. Delete the orphaned/corrupted task record or set its datasource (after stopping writes) so listing can proceed
  3. Check for indexer versions known to write tasks without datasource and upgrade
  4. If the record comes from a failed task-store migration, restore from backup and re-run the migration

Example fix

// before: whole listing fails on one bad record
throw new WebApplicationException(Response.serverError().entity(
    StringUtils.format("No task information found for task with id: [%s]", taskId)).build());
// after: skip records lacking datasource (they cannot be authorized)
if (taskDatasource == null) {
  LOG.warn("Skipping task [%s] with no datasource information", taskId);
  return Collections.emptyList();
}
Defensive patterns

Strategy: validation

Validate before calling

const resp = await fetch(`${overlord}/druid/indexer/v1/tasks`);
const tasks = await resp.json();
const bad = tasks.filter(t => !t.dataSource);
if (bad.length) console.warn('tasks missing datasource:', bad.map(t => t.id));

Type guard

function hasDataSource(t) { return t != null && typeof t.dataSource === 'string' && t.dataSource.length > 0; }

Prevention

When it happens

Trigger: Calling GET on the overlord's task-listing endpoints (e.g. /druid/indexer/v1/tasks) via authorizedList/securedTaskStatusPlus when any task row retrieved from the task storage (metadata store) has getDataSource() == null.

Common situations: Corrupted or manually edited metadata store rows; tasks written by a buggy or downgraded indexer version that omitted the datasource; partial writes during metadata store failures.

Understand the failure class

Background: "must not be empty", "cannot be empty" — required-field validation errors across open-source libraries — this error's family across 41 libraries.

Related errors


AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07). Data as JSON: /api/errors/b3680817bd71a0f7. Report an issue: GitHub.