apache/druid · error · IOException (IOE)

Could not load URI [ ]

Error message

Could not load URI [%s]

What it means

Failure wrapper in S3DataSegmentPuller.getInputStream: opening the S3 object at the given URI threw an SdkException (network, auth, permission, missing object other than handled cases), which is rethrown as an IOException reporting that the URI could not be loaded.

Solutions

  1. Inspect the SdkException cause: check bucket/path spelling, credentials, and IAM permissions.
  2. Confirm the object exists at the URI.
  3. Retry if the cause is transient; otherwise fix storage configuration.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/S3DataSegmentPuller.java:179 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/32b4f18ad8f579f0. Report an issue: GitHub.

Appendix: source

Thrown at extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/S3DataSegmentPuller.java:179

            if (S3Utils.S3RETRY.apply(e)) {
              throw new IOException("Recoverable exception", e);
            }
          }
          throw new RuntimeException(e);
        }
      }
    };
    return byteSource;
  }

  @Override
  public InputStream getInputStream(URI uri) throws IOException
  {
    try {
      return buildFileObject(uri).openInputStream();
    }
    catch (SdkException e) {
      throw new IOE(e, "Could not load URI [%s]", uri);
    }
  }

  public FileObject buildFileObject(final URI uri) throws SdkException
  {
    final CloudObjectLocation coords = new CloudObjectLocation(S3Utils.checkURI(uri));
    final String path = uri.getPath();

    return new FileObject()
    {
      ResponseInputStream<GetObjectResponse> s3InputStream = null;
      HeadObjectResponse objectMetadata = null;

      @Override
      public URI toUri()
      {
        return uri;
      }

View on GitHub (pinned to 9b90983fd2)