Skip to content

[DRC-883] [Bug] Error when running Profile Diff #476

Description

@alejobs

Current Behavior

I am receiving this error when executing profile diff in Recce UI:

TypeError: '>=' not supported between instances of 'str' and 'int'

Expected Behavior

I should see the results after a while

Steps To Reproduce

  1. In my computer, I open a Recce review file with:
    recce server --review /Users/abuxeres/Downloads/recce_state_20241104.json

  2. and then click on Explore Change -> Profile Diff. It starts executing queries but I receive an error

Relevant log output

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 374, in _sentry_patched_asgi_app
    return await middleware(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/asgi.py", line 152, in _run_asgi3
    return await self._run_app(scope, receive, send, asgi_version=3)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/asgi.py", line 246, in _run_app
    raise exc from None
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/asgi.py", line 241, in _run_app
    return await self.app(
           ^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 169, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 169, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
    with collapse_excgroups():
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
    raise exc
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/recce/server.py", line 144, in disable_cache
    response = await call_next(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next
    raise app_exc
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 169, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
    with collapse_excgroups():
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
    raise exc
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/recce/server.py", line 128, in set_context_by_cookie
    response = await call_next(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next
    raise app_exc
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 169, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 169, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
    await self.app(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 169, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/gzip.py", line 24, in __call__
    await responder(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/gzip.py", line 44, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 268, in _sentry_exceptionmiddleware_call
    await old_call(self, scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlette.py", line 169, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/fastapi.py", line 137, in _sentry_app
    return await old_app(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 296, in app
    content = await serialize_response(
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 180, in serialize_response
    return jsonable_encoder(response_content)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 235, in jsonable_encoder
    return jsonable_encoder(
           ^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 289, in jsonable_encoder
    encoded_value = jsonable_encoder(
                    ^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 289, in jsonable_encoder
    encoded_value = jsonable_encoder(
                    ^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 289, in jsonable_encoder
    encoded_value = jsonable_encoder(
                    ^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 303, in jsonable_encoder
    jsonable_encoder(
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 303, in jsonable_encoder
    jsonable_encoder(
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 318, in jsonable_encoder
    return ENCODERS_BY_TYPE[type(obj)](obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abuxeres/code/dbt-models/.venv/lib/python3.11/site-packages/fastapi/encoders.py", line 52, in decimal_encoder
    if dec_value.as_tuple().exponent >= 0:  # type: ignore[operator]
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>=' not supported between instances of 'str' and 'int'

Environment

  • recce: 0.38.2
  • OS: Mac OS Sonoma 14.7
  • Python: 3.11.6
  • Data Warehouse: Snowflake
  • dbt: 1.8.0

Additional Context

No response

DRC-883

Metadata

Metadata

Assignees

No one assigned

    Labels

    High priorityCreated by Linear-GitHub SyncbugSomething isn't workinglinearCreated by Linear-GitHub SynctriageTriage required

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions