You can check the authorization mode the app is using. If the app is configured for user authorization (acting on behalf of the user) rather than app authorization (using the service principalโs identity), the effective permissions come from the interacting user, not the service principal. Error may indicate that the user interacting with the app doesnโt have access to ADLS, even though the service principal does in that case.
You can verify it in the appโs Authorization tab. If itโs using user authorization, the user will need the same Unity Catalog grants. Check if below grants are provided.
GRANT CAN USE ON WAREHOUSE <warehouse_name> TO `<app-sp-id>`;
GRANT USE CATALOG ON CATALOG <catalog_name> TO `<app-sp-id>`;
GRANT USE SCHEMA ON SCHEMA <catalog_name>.<schema_name> TO `<app-sp-id>`;
GRANT SELECT ON TABLE <catalog_name>.<schema_name>.<table_name> TO `<app-sp-id>`;
GRANT READ FILES ON EXTERNAL LOCATION <external_location_name> TO `<app-sp-id>`;
GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <external_location_name> TO `<app-sp-id>`;
GRANT CREATE TABLE ON SCHEMA <catalog_name>.<schema_name> TO `<app-sp-id>`;
Check if the correct SP id is used in all grants