# Not able to add polaris catalog as datasource

**URL:** <https://community.dremio.com/t/not-able-to-add-polaris-catalog-as-datasource/13302>\
**Category:** Uncategorized\
**Created:** [January 20, 2026, 5:22am UTC](https://community.dremio.com/t/not-able-to-add-polaris-catalog-as-datasource/13302 "2026-01-20T05:22:05Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![renuyadav1](https://avatars.discourse-cdn.com/v4/letter/r/bc8723/32.png) [@renuyadav1](https://community.dremio.com/u/renuyadav1)\
**Post date:** [January 20, 2026, 5:22am UTC](https://community.dremio.com/t/not-able-to-add-polaris-catalog-as-datasource/13302/1 "2026-01-20T05:22:05Z")

</div>

Hi Team,

I am trying to add polaris catalog in dremio add source.

my dremio setup is running on k8s on my local , and polaris is backed by minio which is runing on my local

on Dremio home page → Add source → Add catalog → Iceberg Polaris catalog

I entered catalog name  
url → http://:/api/catalog

checked vended crendential

but I am seeing this error in dremio-master

Exception while creating source.

com.dremio.common.exceptions.UserException: Could not connect to test1catalog, check your connection information and credentials

at com.dremio.common.exceptions.UserException$Builder.build(UserException.java:987)

at com.dremio.exec.catalog.ManagedStoragePlugin.postSourceModify(ManagedStoragePlugin.java:752)

at com.dremio.exec.catalog.ManagedStoragePlugin.createOrUpdateSource(ManagedStoragePlugin.java:595)

at com.dremio.exec.catalog.ManagedStoragePlugin.createSource(ManagedStoragePlugin.java:493)

at com.dremio.exec.catalog.ManagedStoragePluginsManager.create(ManagedStoragePluginsManager.java:205)

at com.dremio.exec.catalog.CatalogServiceImpl.createPlugin(CatalogServiceImpl.java:507)

at com.dremio.exec.catalog.CatalogServiceImpl$SourceModifier.createSource(CatalogServiceImpl.java:1128)

at com.dremio.exec.catalog.CatalogImpl.createSource(CatalogImpl.java:2865)

at com.dremio.exec.catalog.DelegatingCatalog.createSource(DelegatingCatalog.java:505)

at com.dremio.exec.catalog.EnterpriseCatalogImpl.createSource(EnterpriseCatalogImpl.java:1399)

at com.dremio.exec.catalog.UserContextualizedCatalogImpl.lambda$createSource$132(UserContextualizedCatalogImpl.java:1118)

at com.dremio.context.RequestContext.run(RequestContext.java:112)

at com.dremio.exec.catalog.UserContextualizedCatalogImpl.createSource(UserContextualizedCatalogImpl.java:1118)

at com.dremio.exec.catalog.SourceAccessChecker.createSource(SourceAccessChecker.java:534)

at com.dremio.exec.catalog.DelegatingCatalog.createSource(DelegatingCatalog.java:505)

at com.dremio.dac.service.source.SourceService.registerSourceWithRuntimeInternal(SourceService.java:224)

at com.dremio.dac.service.source.SourceService.registerSourceWithRuntime(SourceService.java:191)

at com.dremio.dac.resource.EnterprisePutSourceResource.putSource(EnterprisePutSourceResource.java:146)

at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)

at java.base/java.lang.reflect.Method.invoke(Method.java:580)

at com.dremio.dac.server.EnterpriseContextualizedResourceMethodInvocationHandlerProvider.lambda$create$0(EnterpriseContextualizedResourceMethodInvocationHandlerProvider.java:55)

at com.dremio.context.RequestContext.call(RequestContext.java:213)

at com.dremio.dac.server.EnterpriseContextualizedResourceMethodInvocationHandlerProvider.lambda$create$1(EnterpriseContextualizedResourceMethodInvocationHandlerProvider.java:55)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)

at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)

at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256)

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)

at org.glassfish.jersey.internal.Errors.process(Errors.java:292)

at org.glassfish.jersey.internal.Errors.process(Errors.java:274)

at org.glassfish.jersey.internal.Errors.process(Errors.java:244)

at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)

at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)

at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:398)

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:350)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:379)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)

at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)

at com.dremio.dac.server.GenericResponseHeadersFilter.doFilter(GenericResponseHeadersFilter.java:44)

at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)

at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)

at com.dremio.dac.server.SecurityHeadersFilter.doFilter(SecurityHeadersFilter.java:71)

at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)

at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)

at com.dremio.dac.server.DisableHttpMethodsFilter.doFilter(DisableHttpMethodsFilter.java:49)

at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)

at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:722)

at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:54)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)

at org.eclipse.jetty.server.Server.handle(Server.java:516)

at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)

at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)

at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)

at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)

at java.base/java.lang.Thread.run(Thread.java:1583)

Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke “java.lang.Throwable.getMessage()” because the return value of “java.lang.Exception.getCause()” is null

at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)

at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096)

at com.dremio.exec.catalog.ManagedStoragePlugin.replacePlugin(ManagedStoragePlugin.java:1867)

at com.dremio.exec.catalog.ManagedStoragePlugin.createOrUpdateSource(ManagedStoragePlugin.java:560)

… 79 common frames omitted

Caused by: java.lang.NullPointerException: Cannot invoke “java.lang.Throwable.getMessage()” because the return value of “java.lang.Exception.getCause()” is null

at com.dremio.exec.catalog.ManagedStoragePlugin.tryGetState(ManagedStoragePlugin.java:1790)

at com.dremio.exec.catalog.ManagedStoragePlugin.initPlugin(ManagedStoragePlugin.java:1678)

at com.dremio.exec.catalog.ManagedStoragePlugin.setLocals(ManagedStoragePlugin.java:1639)

at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$newStartSupplier$4(ManagedStoragePlugin.java:1029)

at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$nameSupplier$6(ManagedStoragePlugin.java:1108)

at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)

at com.dremio.context.RequestContext.run(RequestContext.java:112)

at com.dremio.common.concurrent.ContextMigratingExecutorService.lambda$decorate$4(ContextMigratingExecutorService.java:246)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)

what am I missing?

Please help

I tried curl from dremio-master pod to get polaris credential it worked from pod but not able to add catalog

---

<div class="post-metadata">

**Author:** ![danh](https://sea2.discourse-cdn.com/flex020/user_avatar/community.dremio.com/danh/32/4654_2.png) [@danh](https://community.dremio.com/u/danh)\
**Post date:** [January 22, 2026, 3:46pm UTC](https://community.dremio.com/t/not-able-to-add-polaris-catalog-as-datasource/13302/2 "2026-01-22T15:46:26Z")

</div>

Hey there. Could you share a bit more information about your setup and how you are hitting this? It would be useful to have the version you are hitting this on (Enterprise SW + version being used or Dremio Cloud) and some screenshots of how you are configuring your source.

If you are trying to connect to a Polaris catalog hosted outside of Dremio, it can be reached via the Iceberg REST Catalog source present in Dremio Cloud and Enterprise SW. We have some example configurations captured in our documentation here [Iceberg REST Catalog | Dremio Documentation](https://docs.dremio.com/current/data-sources/lakehouse-catalogs/iceberg-rest-catalog/#apache-polaris-oss-backed-by-s3)

---

<div class="post-metadata">

**Author:** ![renuyadav1](https://avatars.discourse-cdn.com/v4/letter/r/bc8723/32.png) [@renuyadav1](https://community.dremio.com/u/renuyadav1)\
**Post date:** [January 25, 2026, 1:06pm UTC](https://community.dremio.com/t/not-able-to-add-polaris-catalog-as-datasource/13302/3 "2026-01-25T13:06:32Z")

</div>

Hi @danh ,  
i am using enterprise latest edition and dremio on k8s running on my local.

 ![Screenshot 2026-01-25 at 6.34.21 PM](https://us1.discourse-cdn.com/flex020/uploads/dremio/original/2X/3/36f3312de7d508bec910de131d182ba376831fd1.png)

 ![Screenshot 2026-01-25 at 6.34.35 PM](https://us1.discourse-cdn.com/flex020/uploads/dremio/original/2X/f/f841ab49118119c765541ccb8e930db05f8fd373.png)

Getting this error:  
Getting an S3V2Client in S3FileSystem:2061391022

2026-01-25 12:50:21,948 [dremio-metadata-io-pool-4] ERROR c.d.plugins.s3.store.S3FileSystem - Error while listing S3 buckets

software.amazon.awssdk.services.s3.model.S3Exception: The Access Key Id you provided does not exist in our records. (Service: S3, Status Code: 403, Request ID: 188DFA49700D7ADA, Extended Request ID: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8) (SDK Attempt Count: 1)

at software.amazon.awssdk.services.s3.model.S3Exception$BuilderImpl.build(S3Exception.java:113)

at software.amazon.awssdk.services.s3.model.S3Exception$BuilderImpl.build(S3Exception.java:61)

at software.amazon.awssdk.core.internal.http.pipeline.stages.utils.RetryableStageHelper.retryPolicyDisallowedRetryException(RetryableStageHelper.java:168)

at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:73)

at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36)

at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)

at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:53)

at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:35)

credentials works fine in my local

---

<div class="post-metadata">

**Author:** ![danh](https://sea2.discourse-cdn.com/flex020/user_avatar/community.dremio.com/danh/32/4654_2.png) [@danh](https://community.dremio.com/u/danh)\
**Post date:** [February 3, 2026, 12:29am UTC](https://community.dremio.com/t/not-able-to-add-polaris-catalog-as-datasource/13302/4 "2026-02-03T00:29:46Z")

</div>

Can you give us some information about your layout here?

What is your storage backend for your Polaris catalog server? It would be good to ensure that all tables in the catalog point to the expected location. Seeing credentials not be recognized can sometimes indicate that a table can’t be reached because the credentials tie to one storage location while the table is actually in a different location.

Also, can you confirm that you are able to reach your Polaris and MinIO deployments from your k8s environment from Dremio? I just want to be sure we rule out anything that could be networking related as well.
