https://prefect.io logo
Title
m

Mathijs Carlu

06/01/2022, 9:04 AM
Hi, I tried updating my default storage using the api (PATCH /api/blocks/{id}) since my connection string expired and this is not yet possible using the cli. However, I'm getting a "malformed uuid" exception, while the query does execute perfectly when I query my postgresql database directly. I'm using prefect 2.0b5. Full stack trace in thread
INFO:     10.244.3.3:46808 - "PATCH /blocks/00F6CA32-62C4-4E61-bCC6-6F2FAE7294B3 HTTP/1.1" 500 Internal Server Error
Encountered exception in request:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1719, in _execute_context
context = constructor(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 1070, in _init_compiled
param = [
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 1071, in <listcomp>
processors[key](compiled_params[key])
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/type_api.py", line 1631, in process
return impl_processor(process_param(value, dialect))
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 257, in process
value = _python_UUID(value)
File "/usr/local/lib/python3.8/uuid.py", line 171, in __init__
raise ValueError('badly formed hexadecimal UUID string')
ValueError: badly formed hexadecimal UUID string
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 162, in __call__
await <http://self.app|self.app>(scope, receive, _send)
File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 93, in __call__
raise exc
File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 82, in __call__
await <http://self.app|self.app>(scope, receive, sender)
File "/usr/local/lib/python3.8/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
raise e
File "/usr/local/lib/python3.8/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
await <http://self.app|self.app>(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 670, in __call__
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 266, in handle
await <http://self.app|self.app>(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 65, in app
response = await func(request)
File "/usr/local/lib/python3.8/site-packages/prefect/orion/utilities/server.py", line 101, in handle_response_scoped_depends
response = await default_handler(request)
File "/usr/local/lib/python3.8/site-packages/fastapi/routing.py", line 227, in app
raw_response = await run_endpoint_function(
File "/usr/local/lib/python3.8/site-packages/fastapi/routing.py", line 160, in run_endpoint_function
return await dependant.call(**values)
File "/usr/local/lib/python3.8/site-packages/prefect/orion/api/blocks.py", line 87, in update_block_data
result = await models.blocks.update_block(
File "/usr/local/lib/python3.8/site-packages/prefect/orion/database/dependencies.py", line 112, in async_wrapper
return await fn(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/prefect/orion/models/blocks.py", line 136, in update_block
block = await session.get(db.Block, block_id)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/ext/asyncio/session.py", line 296, in get
return await greenlet_spawn(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 115, in greenlet_spawn
result = context.switch(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2789, in get
return self._get_impl(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2896, in _get_impl
return db_load_fn(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/loading.py", line 530, in load_on_pk_identity
session.execute(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1696, in execute
result = conn._execute_20(statement, params or {}, execution_options)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1631, in _execute_20
return meth(self, args_10style, kwargs_10style, execution_options)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1498, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1725, in _execute_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2043, in _handle_dbapi_exception
util.raise_(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1719, in _execute_context
context = constructor(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 1070, in _init_compiled
param = [
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 1071, in <listcomp>
processors[key](compiled_params[key])
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/type_api.py", line 1631, in process
return impl_processor(process_param(value, dialect))
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 257, in process
value = _python_UUID(value)
File "/usr/local/lib/python3.8/uuid.py", line 171, in __init__
raise ValueError('badly formed hexadecimal UUID string')
sqlalchemy.exc.StatementError: (builtins.ValueError) badly formed hexadecimal UUID string
[SQL: SELECT block.id AS block_id, block.created AS block_created, block.updated AS block_updated, block.name AS block_name, block.data AS block_data, block.is_default_storage_block AS block_is_default_storage_block, block.block_spec_id AS block_block_spec_id, block_spec_1.id AS block_spec_1_id, block_spec_1.created AS block_spec_1_created, block_spec_1.updated AS block_spec_1_updated, block_spec_1.name AS block_spec_1_name, block_spec_1.version AS block_spec_1_version, block_spec_1.type AS block_spec_1_type, block_spec_1.fields AS block_spec_1_fields
FROM block LEFT OUTER JOIN block_spec AS block_spec_1 ON block_spec_1.id = block.block_spec_id
WHERE block.id = %s]
[parameters: [{'pk_1': <built-in function id>}]]
ERROR:    Exception in ASGI application
a

Anna Geller

06/01/2022, 9:33 AM
I have some good news - our engineers made significant progress in that regard and this should be possible quite soon. I would recommend waiting a bit more - we are aware of the issue and it's on our radar to improve this process with storage blocks
🙌 1