apache/druid · error · IllegalArgumentException

error on uri

Error message

error on uri

What it means

RabbitStreamRecordSupplier.getPartitionIds failed to parse the configured stream URI: the URI string raised a URISyntaxException when connection parameters were extracted. The malformed URI (bad scheme, illegal characters, missing host, etc.) is rethrown as an IllegalArgumentException so the caller cannot proceed with an unusable stream location.

Solutions

  1. Check the wrapped URISyntaxException message for the exact parse failure and error index.
  2. Verify the stream URI in the ingestion spec follows the expected rabbitmq stream format (scheme://host:port/stream) with URL-escaped special characters.
  3. Remove stray whitespace or quotes from the configured URI.
  4. Test the URI with a standalone RabbitMQ stream client before restarting the task.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplier.java:467 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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

Appendix: source

Thrown at extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplier.java:467

        parameters.port(parsedURI.getPort());
      }

      if (this.password != null) {
        parameters.password(password);
      }

      if (this.username != null) {
        parameters.username(username);
      }

      Client client = getClient(parameters);

      List<String> partitions = client.partitions(stream);
      client.close();
      return new HashSet<>(partitions);
    }
    catch (URISyntaxException e) {
      throw new IllegalArgumentException("error on uri" + uri);
    }
    catch (Exception e) {
      throw e;
    }
  }

  @Override
  public void close()
  {
    if (closed) {
      return;
    }
    this.stopBackgroundFetch();
    closed = true;
  }
}

View on GitHub (pinned to 9b90983fd2)