When I have multiple databases connected to an hasura instance, DipDup seems to try to apply the table customisation to tables in the other database as well. And then fails with 400, message='Bad Request'
when updating the hasura metadata on those tables.
tezland-indexer | INFO dipdup.hasura Waiting for Hasura instance to be ready
tezland-indexer | INFO dipdup.hasura Connected to Hasura v2.4.0
tezland-indexer | INFO dipdup.hasura Fetching existing metadata
tezland-indexer | INFO dipdup.hasura Generating Hasura metadata based on project models
tezland-indexer | INFO dipdup.hasura Found 1 regular and materialized views
tezland-indexer | INFO dipdup.hasura Replacing metadata
tezland-indexer | INFO dipdup.hasura Applying `contract_metadata` table customization
tezland-indexer | WARNING dipdup.http HTTP request attempt 1/3 failed: 400, message='Bad Request', url=URL('http://tezland-hasura:8080/v1/metadata')
tezland-indexer | INFO dipdup.http Waiting 1.0 seconds before retry
tezland-indexer | WARNING dipdup.http HTTP request attempt 2/3 failed: 400, message='Bad Request', url=URL('http://tezland-hasura:8080/v1/metadata')
tezland-indexer | INFO dipdup.http Waiting 1.0 seconds before retry
tezland-hasura | {"type":"http-log","timestamp":"2022-04-11T20:49:19.714+0000","level":"error","detail":{"operation":{"user_vars":{"x-hasura-role":"admin"},"error":{"path":"$.args","error":"table \"contract_metadata\" does not exist in source: default","code":"not-exists"},"request_id":"153ee1e6-68fa-4cfa-afa2-fc5404c55066","response_size":109,"query":{"args":{"source":"default","configuration":{"identifier":"contractMetadataByPk","custom_root_fields":{"insert":"insertContractMetadata","select_aggregate":"contractMetadataAggregate","insert_one":"insertContractMetadataOne","select_by_pk":"contractMetadataByPk","select":"contractMetadata","delete":"deleteContractMetadata","update":"updateContractMetadata","delete_by_pk":"deleteContractMetadataByPk","update_by_pk":"updateContractMetadataByPk"},"custom_column_names":{"retry_count":"retryCount","status":"status","link":"link","update_id":"updateId","network":"network","updated_at":"updatedAt","contract":"contract","created_at":"createdAt","metadata":"metadata","id":"id"}},"table":{"schema":"public","name":"contract_metadata"}},"type":"pg_set_table_customization"},"request_mode":"error"},"request_id":"153ee1e6-68fa-4cfa-afa2-fc5404c55066","http_info":{"status":400,"http_version":"HTTP/1.1","url":"/v1/metadata","ip":"192.168.160.15","method":"POST","content_encoding":null}}}
tezland-indexer | WARNING dipdup.http HTTP request attempt 3/3 failed: 400, message='Bad Request', url=URL('http://tezland-hasura:8080/v1/metadata')
tezland-indexer | INFO dipdup.http Waiting 1.0 seconds before retry
tezland-hasura | {"type":"http-log","timestamp":"2022-04-11T20:49:20.718+0000","level":"error","detail":{"operation":{"user_vars":{"x-hasura-role":"admin"},"error":{"path":"$.args","error":"table \"contract_metadata\" does not exist in source: default","code":"not-exists"},"request_id":"ef5bfc54-e551-4c78-8019-b21c82994078","response_size":109,"query":{"args":{"source":"default","configuration":{"identifier":"contractMetadataByPk","custom_root_fields":{"insert":"insertContractMetadata","select_aggregate":"contractMetadataAggregate","insert_one":"insertContractMetadataOne","select_by_pk":"contractMetadataByPk","select":"contractMetadata","delete":"deleteContractMetadata","update":"updateContractMetadata","delete_by_pk":"deleteContractMetadataByPk","update_by_pk":"updateContractMetadataByPk"},"custom_column_names":{"retry_count":"retryCount","status":"status","link":"link","update_id":"updateId","network":"network","updated_at":"updatedAt","contract":"contract","created_at":"createdAt","metadata":"metadata","id":"id"}},"table":{"schema":"public","name":"contract_metadata"}},"type":"pg_set_table_customization"},"request_mode":"error"},"request_id":"ef5bfc54-e551-4c78-8019-b21c82994078","http_info":{"status":400,"http_version":"HTTP/1.1","url":"/v1/metadata","ip":"192.168.160.15","method":"POST","content_encoding":null}}}
tezland-hasura | {"type":"http-log","timestamp":"2022-04-11T20:49:19.714+0000","level":"info","detail":{"operation":{"request_id":"95407b7d-d381-4e4d-883f-5b8437a0c8c4","response_size":36,"request_mode":"non-graphql"},"request_id":"95407b7d-d381-4e4d-883f-5b8437a0c8c4","http_info":{"status":200,"http_version":"HTTP/1.1","url":"/healthz","ip":"192.168.160.16","method":"GET","content_encoding":null}}}
tezland-indexer | Traceback (most recent call last):
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/hasura.py", line 166, in _hasura_request
tezland-indexer | result = await self.request(
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/http.py", line 59, in request
tezland-indexer | return await self._http.request(method, url, cache, weight, **kwargs)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/http.py", line 212, in request
tezland-indexer | return await self._retry_request(method, url, weight, **kwargs)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/http.py", line 136, in _retry_request
tezland-indexer | raise e
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/http.py", line 128, in _retry_request
tezland-indexer | return await self._request(
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/http.py", line 177, in _request
tezland-indexer | async with self._session.request(
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 1138, in __aenter__
tezland-indexer | self._resp = await self._coro
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 640, in _request
tezland-indexer | resp.raise_for_status()
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1004, in raise_for_status
tezland-indexer | raise ClientResponseError(
tezland-indexer | aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url=URL('http://tezland-hasura:8080/v1/metadata')
tezland-indexer |
tezland-indexer | The above exception was the direct cause of the following exception:
tezland-indexer |
tezland-indexer | Traceback (most recent call last):
tezland-indexer | File "/usr/local/bin/dipdup", line 8, in <module>
tezland-indexer | sys.exit(cli())
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/asyncclick/core.py", line 1150, in __call__
tezland-indexer | return anyio.run(self._main, main, args, kwargs, **({"backend":_anyio_backend} if _anyio_backend is not None else {}))
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/anyio/_core/_eventloop.py", line 56, in run
tezland-indexer | return asynclib.run(func, *args, **backend_options)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 233, in run
tezland-indexer | return native_run(wrapper(), debug=debug)
tezland-indexer | File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
tezland-indexer | return loop.run_until_complete(main)
tezland-indexer | File "/usr/local/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
tezland-indexer | return future.result()
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 228, in wrapper
tezland-indexer | return await func(*args)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/asyncclick/core.py", line 1153, in _main
tezland-indexer | return await main(*args, **kwargs)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/asyncclick/core.py", line 1074, in main
tezland-indexer | rv = await self.invoke(ctx)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/asyncclick/core.py", line 1684, in invoke
tezland-indexer | return await _process_result(await sub_ctx.command.invoke(sub_ctx))
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/asyncclick/core.py", line 1420, in invoke
tezland-indexer | return await ctx.invoke(self.callback, **ctx.params)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/asyncclick/core.py", line 774, in invoke
tezland-indexer | rv = await rv
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/cli.py", line 87, in wrapper
tezland-indexer | await fn(*args, **kwargs)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/cli.py", line 205, in run
tezland-indexer | await dipdup.run()
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/dipdup.py", line 354, in run
tezland-indexer | await self._set_up_hasura(stack)
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/dipdup.py", line 464, in _set_up_hasura
tezland-indexer | await hasura_gateway.configure()
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/hasura.py", line 134, in configure
tezland-indexer | await self._apply_table_customization()
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/hasura.py", line 425, in _apply_table_customization
tezland-indexer | await self._hasura_request(
tezland-indexer | File "/usr/local/lib/python3.10/site-packages/dipdup/hasura.py", line 174, in _hasura_request
tezland-indexer | raise HasuraError(f'{e.status} {e.message}') from e
tezland-indexer | dipdup.exceptions.HasuraError: 400 Bad Request
tezland-indexer | ________________________________________________________________________________
tezland-indexer |
tezland-indexer | Failed to configure Hasura: 400 Bad Request
tezland-indexer |
tezland-indexer | Check out Hasura logs for more information.
tezland-indexer |
tezland-indexer | GraphQL integration docs: https://docs.dipdup.net/graphql/
tezland-indexer |
tezland-hasura | {"type":"http-log","timestamp":"2022-04-11T20:49:21.724+0000","level":"error","detail":{"operation":{"user_vars":{"x-hasura-role":"admin"},"error":{"path":"$.args","error":"table \"contract_metadata\" does not exist in source: default","code":"not-exists"},"request_id":"ef98610b-7e2e-48a4-890b-21c4ed587fff","response_size":109,"query":{"args":{"source":"default","configuration":{"identifier":"contractMetadataByPk","custom_root_fields":{"insert":"insertContractMetadata","select_aggregate":"contractMetadataAggregate","insert_one":"insertContractMetadataOne","select_by_pk":"contractMetadataByPk","select":"contractMetadata","delete":"deleteContractMetadata","update":"updateContractMetadata","delete_by_pk":"deleteContractMetadataByPk","update_by_pk":"updateContractMetadataByPk"},"custom_column_names":{"retry_count":"retryCount","status":"status","link":"link","update_id":"updateId","network":"network","updated_at":"updatedAt","contract":"contract","created_at":"createdAt","metadata":"metadata","id":"id"}},"table":{"schema":"public","name":"contract_metadata"}},"type":"pg_set_table_customization"},"request_mode":"error"},"request_id":"ef98610b-7e2e-48a4-890b-21c4ed587fff","http_info":{"status":400,"http_version":"HTTP/1.1","url":"/v1/metadata","ip":"192.168.160.15","method":"POST","content_encoding":null}}}