Skip to content

Commit 9ddfb80

Browse files
fix(kernel): distinguish HTTP and filesystem permission errors
Signed-off-by: Aakash Saravanan <aakash.saravanan@databricks.com>
1 parent 934cf35 commit 9ddfb80

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

‎src/databricks/sql/backend/kernel/_errors.py‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,10 @@ def reraise_kernel_error(
162162
message = getattr(exc, "message", str(exc))
163163
new: Union[Error, OSError]
164164
# Local missing files have no HTTP status; remote missing files carry 404.
165-
if error_code == "FILE_TRANSFER_PERMISSION_ERROR":
165+
if (
166+
error_code == "FILE_TRANSFER_PERMISSION_ERROR"
167+
and getattr(exc, "http_status", None) is None
168+
):
166169
new = PermissionError(message)
167170
elif (
168171
file_transfer

‎tests/unit/test_kernel_client.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2684,6 +2684,7 @@ def test_only_reserved_headers_omits_kwarg(self, monkeypatch):
26842684
("NotFound", None, "FILE_TRANSFER_ERROR", FileNotFoundError),
26852685
("NotFound", 404, "FILE_TRANSFER_ERROR", OperationalError),
26862686
("PermissionDenied", None, "FILE_TRANSFER_PERMISSION_ERROR", PermissionError),
2687+
("PermissionDenied", 403, "FILE_TRANSFER_PERMISSION_ERROR", OperationalError),
26872688
("NetworkError", None, "FILE_TRANSFER_ERROR", OperationalError),
26882689
("Internal", None, "FILE_TRANSFER_ERROR", OperationalError),
26892690
("Internal", None, None, DatabaseError),

0 commit comments

Comments
 (0)