Thanks to visit codestin.com
Credit goes to github.com

Skip to content

DatabaseError: Invalid OperationHandle with 4.0.4 #605

Open
@rkrueck

Description

@rkrueck

DatabaseError: Invalid OperationHandle: OperationHandle [opType=EXECUTE_STATEMENT,
getHandleIdentifier()=...]

Not seen with databricks-sql-connector 4.0.3 and before. Fails every time with 4.0.4.

import os
from databricks import sql

with sql.connect(
    server_hostname=os.getenv('DATABRICKS_SERVER_HOSTNAME'),
    http_path=os.getenv('DATABRICKS_HTTP_PATH'),
    access_token=os.getenv('DATABRICKS_TOKEN'),
) as connection:
    with connection.cursor() as cursor:
        cursor.execute('SELECT :param `p`, * FROM RANGE(10)', {"param": "foo"})
        result = cursor.fetchall()

        for row in result:
            print(row)

Result:

Row(RESULT_DATE_LOCAL_TS=datetime.datetime(2025, 6, 18, 15, 6, 7,
...

Exception during cursor close in __exit__: Invalid OperationHandle: OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=03497672-2e05-4a80-8072-a9a61f98f92c]
Traceback (most recent call last):
  File "...\temp.py", line 22, in <module>
    with connection.cursor() as cursor:
         ~~~~~~~~~~~~~~~~~^^
  File "...\.conda\envs\135\Lib\site-packages\databricks\sql\client.py", line 473, in __exit__     
    self.close()
    ~~~~~~~~~~^^
  File "...\.conda\envs\135\Lib\site-packages\databricks\sql\client.py", line 1204, in close       
    self._close_and_clear_active_result_set()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "...\.conda\envs\135\Lib\site-packages\databricks\sql\client.py", line 616, in _close_and_clear_active_result_set
    self.active_result_set.close()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "...\.conda\envs\135\Lib\site-packages\databricks\sql\client.py", line 1534, in close       
    self.thrift_backend.close_command(self.command_id)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "...\.conda\envs\135\Lib\site-packages\databricks\sql\thrift_backend.py", line 1095, in close_command
    resp = self.make_request(self._client.CloseOperation, req)
  File "...\.conda\envs\135\Lib\site-packages\databricks\sql\thrift_backend.py", line 486, in make_request
    ThriftBackend._check_response_for_error(response)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "...\.conda\envs\135\Lib\site-packages\databricks\sql\thrift_backend.py", line 263, in _check_response_for_error
    raise DatabaseError(response.status.errorMessage)
databricks.sql.exc.DatabaseError: Invalid OperationHandle: OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=...]

Metadata

Metadata

Assignees

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