Skip to content

Self hosted Supabase - support self signed certification connection #596

@Brightones

Description

@Brightones

Archon Version

v0.1.0

Bug Severity

🔴 Critical - App unusable

Bug Description

I cant get anchor-server to connect to self hosted supabase with self signed certificate.

Steps to Reproduce

Self hosted supabase on docker with self signed certificate

Update .env with supabase URL and API

Run docker compose up -d from anchor git folder

Expected Behavior

anchor-server container to start successfully

Actual Behavior

anchor-server fail to start - log attached

docker-log.txt

Error Details (if any)

2025-09-05 21:35:02.553 | INFO:     Will watch for changes in these directories: ['/app']
2025-09-05 21:35:02.553 | INFO:     Uvicorn running on http://0.0.0.0:8181 (Press CTRL+C to quit)
2025-09-05 21:35:02.553 | INFO:     Started reloader process [1] using WatchFiles
2025-09-05 21:35:13.397 | INFO:     Started server process [8]
2025-09-05 21:35:13.397 | INFO:     Waiting for application startup.
2025-09-05 21:35:13.519 | Error loading credentials: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)
2025-09-05 21:35:13.519 | ❌ Failed to start backend: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)
2025-09-05 21:35:13.523 | ERROR:    Traceback (most recent call last):
2025-09-05 21:35:13.523 |   File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
2025-09-05 21:35:13.523 |     yield
2025-09-05 21:35:13.523 |   File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 250, in handle_request
2025-09-05 21:35:13.524 |     resp = self._pool.handle_request(req)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 256, in handle_request
2025-09-05 21:35:13.524 |     raise exc from None
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 236, in handle_request
2025-09-05 21:35:13.524 |     response = connection.handle_request(
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 101, in handle_request
2025-09-05 21:35:13.524 |     raise exc
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 78, in handle_request
2025-09-05 21:35:13.524 |     stream = self._connect(request)
2025-09-05 21:35:13.524 |              ^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 156, in _connect
2025-09-05 21:35:13.524 |     stream = stream.start_tls(**kwargs)
2025-09-05 21:35:13.524 |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpcore/_backends/sync.py", line 154, in start_tls
2025-09-05 21:35:13.524 |     with map_exceptions(exc_map):
2025-09-05 21:35:13.524 |          ^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
2025-09-05 21:35:13.524 |     self.gen.throw(value)
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
2025-09-05 21:35:13.524 |     raise to_exc(exc) from exc
2025-09-05 21:35:13.524 | httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)
2025-09-05 21:35:13.524 | 
2025-09-05 21:35:13.524 | The above exception was the direct cause of the following exception:
2025-09-05 21:35:13.524 | 
2025-09-05 21:35:13.524 | Traceback (most recent call last):
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 694, in lifespan
2025-09-05 21:35:13.524 |     async with self.lifespan_context(app) as maybe_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 134, in merged_lifespan
2025-09-05 21:35:13.524 |     async with original_context(app) as maybe_original_state:
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-09-05 21:35:13.524 |     return await anext(self.gen)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/app/src/server/main.py", line 80, in lifespan
2025-09-05 21:35:13.524 |     await initialize_credentials()
2025-09-05 21:35:13.524 |   File "/app/src/server/services/credential_service.py", line 496, in initialize_credentials
2025-09-05 21:35:13.524 |     await credential_service.load_all_credentials()
2025-09-05 21:35:13.524 |   File "/app/src/server/services/credential_service.py", line 130, in load_all_credentials
2025-09-05 21:35:13.524 |     result = supabase.table("archon_settings").select("*").execute()
2025-09-05 21:35:13.524 |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/postgrest/_sync/request_builder.py", line 57, in execute
2025-09-05 21:35:13.524 |     r = self.session.request(
2025-09-05 21:35:13.524 |         ^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 825, in request
2025-09-05 21:35:13.524 |     return self.send(request, auth=auth, follow_redirects=follow_redirects)
2025-09-05 21:35:13.524 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 914, in send
2025-09-05 21:35:13.524 |     response = self._send_handling_auth(
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 942, in _send_handling_auth
2025-09-05 21:35:13.524 |     response = self._send_handling_redirects(
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 979, in _send_handling_redirects
2025-09-05 21:35:13.524 |     response = self._send_single_request(request)
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1014, in _send_single_request
2025-09-05 21:35:13.524 |     response = transport.handle_request(request)
2025-09-05 21:35:13.524 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 249, in handle_request
2025-09-05 21:35:13.524 |     with map_httpcore_exceptions():
2025-09-05 21:35:13.524 |          ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-09-05 21:35:13.524 |   File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
2025-09-05 21:35:13.524 |     self.gen.throw(value)
2025-09-05 21:35:13.524 |   File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions
2025-09-05 21:35:13.524 |     raise mapped_exc(message) from exc
2025-09-05 21:35:13.524 | httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1010)
2025-09-05 21:35:13.524 | 
2025-09-05 21:35:13.524 | ERROR:    Application startup failed. Exiting.

Affected Component

🐳 Docker / Infrastructure

Browser & OS

Windows 11 / Docker

Additional Context

No response

Service Status (check all that are working)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status
Done (In Stable)

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions