Skip to content

URL encoding issue with Databricks Unity Catalog Iceberg REST endpoint - %2F instead of / #684

@nmellal

Description

@nmellal

What happens?

When attaching to a Databricks Unity Catalog via the Iceberg REST API, the endpoint gets URL-encoded, causing / to become %2F in the request path. This results in a 404 error.

Expected behavior

The request should be made to:
/api/2.1/unity-catalog/iceberg-rest/v1/catalogs/my_unity_catalog/namespaces

Actual behavior

The request is made to:
/api/2.1/unity-catalog/iceberg-rest/v1/catalogs%2Fmy_unity_catalog/namespaces
Which returns:
HTTP 404 - Not Found

To Reproduce

INSTALL iceberg;
LOAD iceberg;

CREATE SECRET iceberg_secret (
TYPE ICEBERG,
TOKEN 'dapi...'
);

ATTACH 'my_unity_catalog' AS iceberg_catalog (
TYPE ICEBERG,
SECRET iceberg_secret,
ENDPOINT 'https://adb-xxxxxxxx.xx.azuredatabricks.net/api/2.1/unity-catalog/iceberg-rest'
);

select * from iceberg_catalog.my_schema.my_table ;

Error:

request to endpoint 'https://adb-xxxx.azuredatabricks.net/api/2.1/unity-catalog/iceberg-rest/v1/catalogs%2Fmy_unity_catalog/namespaces' returned an error response (HTTP 404). Reason: Not Found

Environment

DuckDB version: 1.4.4
Iceberg extension version: 1095c1f (installed from core)
OS: macOS Version 26.2 (25C56)
Databricks: Azure Databricks with Unity Catalog

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions