edgedb-ui icon indicating copy to clipboard operation
edgedb-ui copied to clipboard

WebUI Hanging - SSLV3_ALERT_CERTIFICATE_UNKNOWN

Open codescalar opened this issue 2 years ago • 4 comments

I've used EdgeDB in a few projects so far and in my new project I just noticed some strange behavior (which is now affecting my other projects as well). When opening the web UI, I can run successfully queries from the REPL tab but no other data is loaded and I can't use any other page - i.e. the dashboard page is blank, as is the schema page and the data explorer page (which hangs on "Loading schema...").

I'm running the server through docker-compose and seeing these logs when refreshing the schema page:

digi-nfc-edgedb-1  | ---- Exception occurred: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:997) ----
digi-nfc-edgedb-1  | 
digi-nfc-edgedb-1  | 1. ssl.SSLError: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:997)
digi-nfc-edgedb-1  | 
digi-nfc-edgedb-1  | ---- Traceback ----
digi-nfc-edgedb-1  | 
digi-nfc-edgedb-1  |     edb/server/protocol/protocol.pyx, line 351, in _start_tls
digi-nfc-edgedb-1  |         
digi-nfc-edgedb-1  |     uvloop/loop.pyx, line 1638, in start_tls
digi-nfc-edgedb-1  |         
digi-nfc-edgedb-1  |     uvloop/loop.pyx, line 1631, in uvloop.loop.Loop.start_tls
digi-nfc-edgedb-1  |         
digi-nfc-edgedb-1  |     uvloop/sslproto.pyx, line 517, in uvloop.loop.SSLProtocol._on_handshake_complete
digi-nfc-edgedb-1  |         
digi-nfc-edgedb-1  |     uvloop/sslproto.pyx, line 499, in uvloop.loop.SSLProtocol._do_handshake
digi-nfc-edgedb-1  |         
digi-nfc-edgedb-1  |     /usr/lib/x86_64-linux-gnu/edgedb-server-2/lib/python3.10/ssl.py, line 975, in do_handshake
digi-nfc-edgedb-1  |         > self._sslobj.do_handshake()
digi-nfc-edgedb-1  | 
digi-nfc-edgedb-1  | ssl.SSLError: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:997)
digi-nfc-edgedb-1  | ERROR 1 2023-04-17T02:21:31.216 asyncio: Task exception was never retrieved
digi-nfc-edgedb-1  | future: <Task finished name='Task-155' coro=<<coroutine without __name__>()> exception=SSLError(1, '[SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:997)')>

I also see some uncaught exceptions in the browser console:

asyncToGenerator.js:6 Uncaught (in promise) DOMException: Internal error.
Gh @ asyncToGenerator.js:6
s @ asyncToGenerator.js:29
Promise.then (async)
Gh @ asyncToGenerator.js:13
a @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
Dd @ index.ts:74
Nd @ index.ts:74
(anonymous) @ instance.ts:74
c @ runtime.js:63
(anonymous) @ runtime.js:294
(anonymous) @ runtime.js:119
Gh @ asyncToGenerator.js:3
a @ asyncToGenerator.js:25
Promise.then (async)
Gh @ asyncToGenerator.js:13
a @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ instance.ts:29
value @ instance.ts:86
Qe @ action.ts:68
$$onInit @ action.ts:49
u @ wrapInAction.ts:94
n @ modelDecorator.ts:107
(anonymous) @ app.ts:56
(anonymous) @ newModel.ts:104
Qe @ action.ts:68
newModel @ action.ts:49
t @ BaseModel.ts:139
t @ Model.ts:232
(anonymous) @ createSuper.js:12
n @ app.ts:54
n @ modelDecorator.ts:66
(anonymous) @ store.ts:20
(anonymous) @ index.tsx:11
(anonymous) @ index.tsx:11
wrapInAction.ts:102 Uncaught (in promise) DOMException: Internal error.
u @ wrapInAction.ts:102
r @ modelFlow.ts:126
Promise.then (async)
i @ modelFlow.ts:157
n @ modelFlow.ts:94
(anonymous) @ modelFlow.ts:157
i @ modelFlow.ts:68
(anonymous) @ database.ts:121
Qe @ action.ts:68
When-effect @ action.ts:49
(anonymous) @ when.ts:64
u @ autorun.ts:88
lt @ derivation.ts:183
t.track @ reaction.ts:137
(anonymous) @ autorun.ts:59
t.runReaction_ @ reaction.ts:102
Nt @ reaction.ts:260
Tt @ reaction.ts:230
(anonymous) @ reaction.ts:270
wu @ react-dom.production.min.js:244
Tt @ reaction.ts:270
At @ reaction.ts:237
jt @ observable.ts:112
t.track @ reaction.ts:153
ui @ useObserver.ts:113
s @ observer.ts:104
sa @ react-dom.production.min.js:157
Wa @ react-dom.production.min.js:180
Ua @ react-dom.production.min.js:178
Fa @ react-dom.production.min.js:177
Gs @ react-dom.production.min.js:274
Iu @ react-dom.production.min.js:250
ju @ react-dom.production.min.js:250
Eu @ react-dom.production.min.js:250
bu @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
t.unstable_runWithPriority @ scheduler.production.min.js:18
Qi @ react-dom.production.min.js:122
Yi @ react-dom.production.min.js:123
Gi @ react-dom.production.min.js:122
wu @ react-dom.production.min.js:244
Tt @ reaction.ts:270
At @ reaction.ts:237
jt @ observable.ts:112
Ge @ action.ts:141
Qe @ action.ts:73
$t @ action.ts:85
(anonymous) @ instance.ts:68
c @ runtime.js:63
(anonymous) @ runtime.js:294
(anonymous) @ runtime.js:119
Gh @ asyncToGenerator.js:3
a @ asyncToGenerator.js:25
Promise.then (async)
Gh @ asyncToGenerator.js:13
a @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ instance.ts:29
value @ instance.ts:86
Qe @ action.ts:68
$$onInit @ action.ts:49
u @ wrapInAction.ts:94
n @ modelDecorator.ts:107
(anonymous) @ app.ts:56
(anonymous) @ newModel.ts:104
Qe @ action.ts:68
newModel @ action.ts:49
t @ BaseModel.ts:139
t @ Model.ts:232
(anonymous) @ createSuper.js:12
n @ app.ts:54
n @ modelDecorator.ts:66
(anonymous) @ store.ts:20
(anonymous) @ index.tsx:11
(anonymous) @ index.tsx:11
favicon.ico:1     GET https://127.0.0.1:5656/favicon.ico 404 (Not Found)
DevTools failed to load source map: Could not load content for https://127.0.0.1:5656/ui/static/js/115.a4bd4303.chunk.js.map: Fetch through target failed: Target not supported; Fallback: Certificate error: net::ERR_CERT_AUTHORITY_INVALID
DevTools failed to load source map: Could not load content for https://127.0.0.1:5656/ui/static/js/738.b68d3ef2.chunk.js.map: Fetch through target failed: Target not supported; Fallback: Certificate error: net::ERR_CERT_AUTHORITY_INVALID

My compose file:

version: '3'
name: 'mtd-mup'
services:
  edgedb:
    image: edgedb/edgedb:2.12
    restart: on-failure
    pull_policy: always
    ports:
      - '5656:5656'
    environment:
      EDGEDB_SERVER_PASSWORD: dev
      EDGEDB_SERVER_TLS_CERT_MODE: generate_self_signed
      EDGEDB_SERVER_ADMIN_UI: enabled
    volumes:
      - "./db/schema:/dbschema"
      - "./db/dev:/var/lib/edgedb/data"

I suspect it may have something to do with python, as in the past few days I've been experimenting with stable diffusion and have installed a number of python packages (mostly in venv but a few in system packages). Although this shouldn't be affecting anything as I'm using the dockerized server.

As it currently stands, I'm unable to use 80% of the web UI functionality and I don't know how to proceed or begin to troubleshoot. Please let me know if there's any other info I can provide. Thank you!

codescalar avatar Apr 17 '23 02:04 codescalar

Hello, thank you for sharing the issue with us. We'll take a look on this today.

diksipav avatar Apr 17 '23 04:04 diksipav

Reporting back, I'm no longer experiencing this issue after a reboot. Not sure what the issue was or why a reboot fixed it. Apologies for the noise!

codescalar avatar Apr 18 '23 00:04 codescalar

Hmmm, the web UI is working now but I'm still seeing the SSLV3_ALERT_CERTIFICATE_UNKNOWN error in the docker-compose server logs. Otherwise not causing any problems from what I can see though.

codescalar avatar Apr 18 '23 00:04 codescalar

In my case, this error is because of self-signed certification. the browser is not able to verify it, and Python shows this error. I am using WSL.

sharifzadesina avatar Sep 02 '23 20:09 sharifzadesina