hypothesis / h

Annotate with anyone, anywhere.
https://hypothes.is/
BSD 2-Clause "Simplified" License
2.94k stars 427 forks source link

"Register client" I get : "Uh-oh, something went wrong! #7600

Closed raphael10-collab closed 1 year ago

raphael10-collab commented 2 years ago

I switched from the unmaintained https://github.com/wexond/browser-base to the living maintained https://github.com/minbrowser/min . Clicking "Register client" I get : "Uh-oh, something went wrong! We’re very sorry, our application wasn’t able to load this page. The team has been notified and we’ll fix it shortly. If the problem persists or you'd like more information please contact support@hypothes.is."

image image

These are the background error messages:

raphy@pc:~/min/js/hypothesis/h$ 
raphy@pc:~/min/js/hypothesis/h$ make services
Everything up-to-date
h_postgres_1 is up-to-date
h_elasticsearch_1 is up-to-date
h_rabbit_1 is up-to-date
___________________________________ summary ____________________________________
  dockercompose: commands succeeded
  congratulations :)
raphy@pc:~/min/js/hypothesis/h$ make dev
installing javascript dependencies
yarn install v1.22.19
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
Done in 4.18s.
yarn run v1.22.19
$ gulp build
[11:36:19] Using gulpfile ~/min/js/hypothesis/h/gulpfile.mjs
[11:36:19] Starting 'build'...
[11:36:19] Starting 'build-js'...
[11:36:19] Starting 'build-css'...
[11:36:19] Starting 'build-fonts'...
[11:36:19] Starting 'build-images'...
[11:36:20] Finished 'build-css' after 1.45 s
[11:36:20] Finished 'build-fonts' after 1.54 s
[11:36:22] Finished 'build-images' after 3.65 s
[11:36:23] Finished 'build-js' after 4.52 s
[11:36:23] Starting 'build-manifest'...
[11:36:23] Finished 'build-manifest' after 37 ms
[11:36:23] Finished 'build' after 4.56 s
Done in 5.48s.
Everything up-to-date
2022-09-06 11:36:47,721 [118811] [h.cli.commands.init:INFO] detected alembic_version table, skipping db initialization
2022-09-06 11:36:47,722 [118811] [h.cli.commands.init:INFO] initializing ES6 search index
web (stderr)         | Starting monitor for PID 118925.
websocket (stderr)   | Starting monitor for PID 118929.
assets               | [11:36:50] 
assets               | Using gulpfile ~/min/js/hypothesis/h/gulpfile.mjs
assets               | [11:36:50] 
assets               | Starting 'watch'...
assets               | [11:36:50] 
assets               | Starting 'watch-js'...
assets               | [11:36:50] Starting 'watch-css'...
assets               | [11:36:50] 
assets               | Starting 'watch-fonts'...
assets               | [11:36:50] 
assets               | Starting 'watch-images'...
assets               | [11:36:50] 
assets               | Starting 'watch-manifest'...
assets               | [11:36:50] 
assets               | JS build starting...
assets               | [11:36:50] Starting 'build-css'...
websocket (stderr)   | Starting server in PID 118929.
websocket (stderr)   | 
websocket (stderr)   | 2022-09-06 11:36:51,162 [118929] [gunicorn.error:INFO] Starting gunicorn 20.1.0
websocket (stderr)   | 2022-09-06 11:36:51,164 [118929] [gunicorn.error:INFO] Listening at: http://127.0.0.1:5001 (118929)
websocket (stderr)   | 2022-09-06 11:36:51,165 [118929] [gunicorn.error:INFO] Using worker: h.streamer.Worker
websocket (stderr)   | 2022-09-06 11:36:51,169 [118993] [gunicorn.error:INFO] Booting worker with pid: 118993
websocket (stderr)   | 2022-09-06 11:36:51,171 [118993] [gunicorn.error:INFO] Made psycopg green
websocket (stderr)   | 2022-09-06 11:36:51,240 [118994] [gunicorn.error:INFO] Booting worker with pid: 118994
websocket (stderr)   | 2022-09-06 11:36:51,242 [118994] [gunicorn.error:INFO] Made psycopg green
websocket (stderr)   | /home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/gunicorn/workers/ggevent.py:38: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util (/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/urllib3/util/__init__.py)', 'urllib3.util.ssl_ (/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/urllib3/util/ssl_.py)', 'newrelic.packages.urllib3.util (/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/newrelic/packages/urllib3/util/__init__.py)']. 
websocket (stderr)   |   monkey.patch_all()
worker               |  
worker               |  -------------- celery@pc v5.2.7 (dawn-chorus)
worker               | --- ***** ----- 
worker               | -- ******* ---- Linux-5.15.0-46-generic-x86_64-with-glibc2.29 2022-09-06 11:36:51
worker               | - *** --- * --- 
worker               | - ** ---------- [config]
worker               | - ** ---------- .> app:         h:0x7f1919ee4610
worker               | - ** ---------- .> transport:   amqp://guest:**@localhost:5672//
worker               | - ** ---------- .> results:     disabled://
worker               | - *** --- * --- .> concurrency: 8 (prefork)
worker               | -- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
worker               | --- ***** ----- 
worker               |  -------------- [queues]
worker               |                 .> celery           exchange=celery(direct) key=celery
worker               |                 .> indexer          exchange=indexer(direct) key=indexer
worker               | 
worker               | [tasks]
worker               |   . h.tasks.cleanup.purge_deleted_annotations
worker               |   . h.tasks.cleanup.purge_expired_auth_tickets
worker               |   . h.tasks.cleanup.purge_expired_authz_codes
worker               |   . h.tasks.cleanup.purge_expired_tokens
worker               |   . h.tasks.cleanup.purge_removed_features
worker               |   . h.tasks.indexer.add_annotation
worker               |   . h.tasks.indexer.add_annotations_between_times
worker               |   . h.tasks.indexer.add_group_annotations
worker               |   . h.tasks.indexer.add_users_annotations
worker               |   . h.tasks.indexer.delete_annotation
worker               |   . h.tasks.indexer.report_job_queue_metrics
worker               |   . h.tasks.indexer.sync_annotations
worker               |   . h.tasks.mailer.send
worker               | 
websocket (stderr)   | /home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/gunicorn/workers/ggevent.py:38: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util (/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/urllib3/util/__init__.py)', 'urllib3.util.ssl_ (/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/urllib3/util/ssl_.py)', 'newrelic.packages.urllib3.util (/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/newrelic/packages/urllib3/util/__init__.py)']. 
websocket (stderr)   |   monkey.patch_all()
web (stderr)         | Starting server in PID 118925.
web (stderr)         | 2022-09-06 11:36:51,740 [118925] [gunicorn.error:INFO] Starting gunicorn 20.1.0
web (stderr)         | 2022-09-06 11:36:51,742 [118925] [gunicorn.error:INFO] Listening at: http://0.0.0.0:5000 (118925)
web (stderr)         | 2022-09-06 11:36:51,743 [118925] [gunicorn.error:INFO] Using worker: sync
web (stderr)         | 2022-09-06 11:36:51,746 [119002] [gunicorn.error:INFO] Booting worker with pid: 119002
worker (stderr)      | [2022-09-06 11:36:52,167: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
worker (stderr)      | [2022-09-06 11:36:52,170: INFO/MainProcess] mingle: searching for neighbors
assets               | [11:36:52] 
assets               | Finished 'build-css' after 1.8 s
assets               | [11:36:52] Starting 'build-manifest'...
assets               | [11:36:52] Finished 'build-manifest' after 54 ms
worker (stderr)      | [2022-09-06 11:36:53,192: INFO/MainProcess] mingle: all alone
worker (stderr)      | [2022-09-06 11:36:53,227: INFO/MainProcess] celery@pc ready.
assets               | [11:36:54] Starting 'build-manifest'...
assets               | [11:36:54] Finished 'build-manifest' after 44 ms
assets               | [11:36:55] 
assets               | JS build completed.
assets               | [11:36:55] Finished 'watch-js' after 5.25 s
assets               | [11:36:55] Starting 'build-manifest'...
assets               | [11:36:55] Finished 'build-manifest' after 26 ms
web (stderr)         | 2022-09-06 11:53:45,597 [119002] [exc_logger:ERROR] 
web (stderr)         | 
web (stderr)         | 'http://localhost:5000/admin/oauthclients/new'
web (stderr)         | 
web (stderr)         | ENVIRONMENT
web (stderr)         | 
web (stderr)         | {'CONTENT_LENGTH': '916',
web (stderr)         |  'CONTENT_TYPE': 'multipart/form-data; '
web (stderr)         |                  'boundary=----WebKitFormBoundaryKMIBGHeOGFS0IBky',
web (stderr)         |  'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
web (stderr)         |  'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
web (stderr)         |  'HTTP_ACCEPT_LANGUAGE': 'en-US',
web (stderr)         |  'HTTP_CACHE_CONTROL': 'max-age=0',
web (stderr)         |  'HTTP_CONNECTION': 'keep-alive',
web (stderr)         |  'HTTP_COOKIE': 'auth=86Ndf7oP3eLH-tGwtXNdB_BcA8Cqq8N8yrTAOQahquvOnlAhqiFbvlcEhyEq4EdcYSovmTgYs93ZqvlMDl4ZW1siYWNjdDpSYXBoeVN0b25laG9yc2VAbG9jYWxob3N0IiwgIjc1RDNEUm1jeHVJSmlLdHhWTk5EUW53c0U2UmNXRmdSeExmd0dvVjFVcTAiXQ; '
web (stderr)         |                 'session=XFLE4xUHpHju-JFmtyZjQ34bc4eNLi8pa85_h8SE3lOV2QuvFgsHSswE2KPb-kBrEKDUVuTmP7koMBN9-d-sN1sxNjYyNDU4MDA4LCAxNjYyNDU3MTQ3LjY2NjE0ODIsIHsiX2NzcmZ0XyI6ICIyNjZlZTJlYmUzZjU0NjIxODliZWY5NjJkODM0MWRjMyJ9XQ',
web (stderr)         |  'HTTP_HOST': 'localhost:5000',
web (stderr)         |  'HTTP_ORIGIN': 'http://localhost:5000',
web (stderr)         |  'HTTP_REFERER': 'http://localhost:5000/admin/oauthclients/new',
web (stderr)         |  'HTTP_SEC_CH_UA': '"Chromium";v="102", " Not A;Brand";v="99"',
web (stderr)         |  'HTTP_SEC_CH_UA_MOBILE': '?0',
web (stderr)         |  'HTTP_SEC_FETCH_DEST': 'document',
web (stderr)         |  'HTTP_SEC_FETCH_MODE': 'navigate',
web (stderr)         |  'HTTP_SEC_FETCH_SITE': 'same-origin',
web (stderr)         |  'HTTP_SEC_FETCH_USER': '?1',
web (stderr)         |  'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
web (stderr)         |  'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 '
web (stderr)         |                     '(KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36',
web (stderr)         |  'PATH_INFO': '/admin/oauthclients/new',
web (stderr)         |  'QUERY_STRING': '',
web (stderr)         |  'RAW_URI': '/admin/oauthclients/new',
web (stderr)         |  'REMOTE_ADDR': '127.0.0.1',
web (stderr)         |  'REMOTE_PORT': '39436',
web (stderr)         |  'REQUEST_METHOD': 'POST',
web (stderr)         |  'SCRIPT_NAME': '',
web (stderr)         |  'SERVER_NAME': '0.0.0.0',
web (stderr)         |  'SERVER_PORT': '5000',
web (stderr)         |  'SERVER_PROTOCOL': 'HTTP/1.1',
web (stderr)         |  'SERVER_SOFTWARE': 'gunicorn/20.1.0',
web (stderr)         |  'gunicorn.socket': <socket.socket fd=11, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 5000), raddr=('127.0.0.1', 39436)>,
web (stderr)         |  'retry.attempt': 0,
web (stderr)         |  'retry.attempts': 3,
web (stderr)         |  'tm.active': True,
web (stderr)         |  'tm.manager': <transaction._manager.TransactionManager object at 0x7f8af6ebb430>,
web (stderr)         |  'webob._body_file': (<_io.BufferedReader>,
web (stderr)         |                       <gunicorn.http.body.Body object at 0x7f8af6ea5940>),
web (stderr)         |  'webob._parsed_cookies': ({'auth': '86Ndf7oP3eLH-tGwtXNdB_BcA8Cqq8N8yrTAOQahquvOnlAhqiFbvlcEhyEq4EdcYSovmTgYs93ZqvlMDl4ZW1siYWNjdDpSYXBoeVN0b25laG9yc2VAbG9jYWxob3N0IiwgIjc1RDNEUm1jeHVJSmlLdHhWTk5EUW53c0U2UmNXRmdSeExmd0dvVjFVcTAiXQ',
web (stderr)         |                             'session': 'XFLE4xUHpHju-JFmtyZjQ34bc4eNLi8pa85_h8SE3lOV2QuvFgsHSswE2KPb-kBrEKDUVuTmP7koMBN9-d-sN1sxNjYyNDU4MDA4LCAxNjYyNDU3MTQ3LjY2NjE0ODIsIHsiX2NzcmZ0XyI6ICIyNjZlZTJlYmUzZjU0NjIxODliZWY5NjJkODM0MWRjMyJ9XQ'},
web (stderr)         |                            'auth=86Ndf7oP3eLH-tGwtXNdB_BcA8Cqq8N8yrTAOQahquvOnlAhqiFbvlcEhyEq4EdcYSovmTgYs93ZqvlMDl4ZW1siYWNjdDpSYXBoeVN0b25laG9yc2VAbG9jYWxob3N0IiwgIjc1RDNEUm1jeHVJSmlLdHhWTk5EUW53c0U2UmNXRmdSeExmd0dvVjFVcTAiXQ; '
web (stderr)         |                            'session=XFLE4xUHpHju-JFmtyZjQ34bc4eNLi8pa85_h8SE3lOV2QuvFgsHSswE2KPb-kBrEKDUVuTmP7koMBN9-d-sN1sxNjYyNDU4MDA4LCAxNjYyNDU3MTQ3LjY2NjE0ODIsIHsiX2NzcmZ0XyI6ICIyNjZlZTJlYmUzZjU0NjIxODliZWY5NjJkODM0MWRjMyJ9XQ'),
web (stderr)         |  'webob._parsed_post_vars': (MultiDict([('__formid__', 'deform'), ('csrf_token', '266ee2ebe3f5462189bef962d8341dc3'), ('name', 'RaphyStonehorse'), ('authority', 'localhost'), ('grant_type', 'authorization_code'), ('trusted', 'true'), ('redirect_url', ''), ('Register_client', 'Register_client')]),
web (stderr)         |                              <_io.BytesIO object at 0x7f8af65e0e00>),
web (stderr)         |  'webob._parsed_query_vars': (GET([]), ''),
web (stderr)         |  'webob.is_body_seekable': True,
web (stderr)         |  'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f8af6ea5f10>,
web (stderr)         |  'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
web (stderr)         |  'wsgi.input': <_io.BytesIO object at 0x7f8af65e0e00>,
web (stderr)         |  'wsgi.input_terminated': True,
web (stderr)         |  'wsgi.multiprocess': False,
web (stderr)         |  'wsgi.multithread': False,
web (stderr)         |  'wsgi.run_once': False,
web (stderr)         |  'wsgi.url_scheme': 'http',
web (stderr)         |  'wsgi.version': (1, 0)}
web (stderr)         | 
web (stderr)         | 
web (stderr)         | PARAMETERS
web (stderr)         | 
web (stderr)         | NestedMultiDict([('__formid__', 'deform'), ('csrf_token', '266ee2ebe3f5462189bef962d8341dc3'), ('name', 'RaphyStonehorse'), ('authority', 'localhost'), ('grant_type', 'authorization_code'), ('trusted', 'true'), ('redirect_url', ''), ('Register_client', 'Register_client')])
web (stderr)         | 
web (stderr)         | 
web (stderr)         | UNAUTHENTICATED USER
web (stderr)         | 
web (stderr)         | acct:RaphyStonehorse@localhost
web (stderr)         | 
web (stderr)         | Traceback (most recent call last):
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
web (stderr)         |     self.dialect.do_execute(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute
web (stderr)         |     cursor.execute(statement, parameters)
web (stderr)         | psycopg2.errors.CheckViolation: new row for relation "authclient" violates check constraint "ck__authclient__authz_grant_redirect_uri"
web (stderr)         | DETAIL:  Failing row contains (2022-09-06 09:53:45.59083, 2022-09-06 09:53:45.590835, cc334638-2dc9-11ed-ba34-9b6eb30b24bb, RaphyStonehorse, null, localhost, authorization_code, code, null, t).
web (stderr)         | 
web (stderr)         | 
web (stderr)         | The above exception was the direct cause of the following exception:
web (stderr)         | 
web (stderr)         | Traceback (most recent call last):
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid_exclog/__init__.py", line 157, in exclog_tween
web (stderr)         |     response = handler(request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 34, in tween
web (stderr)         |     return check(request, handler, registry)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 109, in ascii_safe_redirects_tween_factory
web (stderr)         |     response = handler(request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/router.py", line 143, in handle_request
web (stderr)         |     response = _call_view(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sentry_sdk/integrations/pyramid.py", line 90, in sentry_patched_call_view
web (stderr)         |     return old_call_view(registry, request, *args, **kwargs)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/view.py", line 674, in _call_view
web (stderr)         |     response = view_callable(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/config/views.py", line 151, in __call__
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/config/views.py", line 170, in attr_view
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/config/views.py", line 196, in predicate_wrapper
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 375, in authdebug_view
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 319, in secured_view
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 427, in rendered_view
web (stderr)         |     result = view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 113, in _class_requestonly_view
web (stderr)         |     response = getattr(inst, attr)()
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/h/views/admin/oauthclients.py", line 82, in post
web (stderr)         |     return form.handle_form_submission(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/h/form.py", line 123, in handle_form_submission
web (stderr)         |     result = on_success(appstruct)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/h/views/admin/oauthclients.py", line 77, in on_success
web (stderr)         |     self.request.db.flush()
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 3383, in flush
web (stderr)         |     self._flush(objects)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 3523, in _flush
web (stderr)         |     transaction.rollback(_capture_exception=True)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
web (stderr)         |     compat.raise_(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
web (stderr)         |     raise exception
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 3483, in _flush
web (stderr)         |     flush_context.execute()
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute
web (stderr)         |     rec.execute(self)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 630, in execute
web (stderr)         |     util.preloaded.orm_persistence.save_obj(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 245, in save_obj
web (stderr)         |     _emit_insert_statements(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1238, in _emit_insert_statements
web (stderr)         |     result = connection._execute_20(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1705, in _execute_20
web (stderr)         |     return meth(self, args_10style, kwargs_10style, execution_options)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 333, in _execute_on_connection
web (stderr)         |     return connection._execute_clauseelement(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement
web (stderr)         |     ret = self._execute_context(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context
web (stderr)         |     self._handle_dbapi_exception(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception
web (stderr)         |     util.raise_(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
web (stderr)         |     raise exception
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
web (stderr)         |     self.dialect.do_execute(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute
web (stderr)         |     cursor.execute(statement, parameters)
web (stderr)         | sqlalchemy.exc.IntegrityError: (psycopg2.errors.CheckViolation) new row for relation "authclient" violates check constraint "ck__authclient__authz_grant_redirect_uri"
web (stderr)         | DETAIL:  Failing row contains (2022-09-06 09:53:45.59083, 2022-09-06 09:53:45.590835, cc334638-2dc9-11ed-ba34-9b6eb30b24bb, RaphyStonehorse, null, localhost, authorization_code, code, null, t).
web (stderr)         | 
web (stderr)         | [SQL: INSERT INTO authclient (created, updated, name, secret, authority, grant_type, response_type, redirect_uri, trusted) VALUES (%(created)s, %(updated)s, %(name)s, %(secret)s, %(authority)s, %(grant_type)s, %(response_type)s, %(redirect_uri)s, %(trusted)s) RETURNING authclient.id]
web (stderr)         | [parameters: {'created': datetime.datetime(2022, 9, 6, 9, 53, 45, 590830), 'updated': datetime.datetime(2022, 9, 6, 9, 53, 45, 590835), 'name': 'RaphyStonehorse', 'secret': None, 'authority': 'localhost', 'grant_type': 'authorization_code', 'response_type': 'code', 'redirect_uri': None, 'trusted': True}]
web (stderr)         | (Background on this error at: https://sqlalche.me/e/14/gkpj)
web (stderr)         | 2022-09-06 11:56:56,415 [119002] [exc_logger:ERROR] 
web (stderr)         | 
web (stderr)         | 'http://localhost:5000/admin/oauthclients/new'
web (stderr)         | 
web (stderr)         | ENVIRONMENT
web (stderr)         | 
web (stderr)         | {'CONTENT_LENGTH': '916',
web (stderr)         |  'CONTENT_TYPE': 'multipart/form-data; '
web (stderr)         |                  'boundary=----WebKitFormBoundaryGMqPqSVtDuoY7ivG',
web (stderr)         |  'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
web (stderr)         |  'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
web (stderr)         |  'HTTP_ACCEPT_LANGUAGE': 'en-US',
web (stderr)         |  'HTTP_CACHE_CONTROL': 'max-age=0',
web (stderr)         |  'HTTP_CONNECTION': 'keep-alive',
web (stderr)         |  'HTTP_COOKIE': 'auth=86Ndf7oP3eLH-tGwtXNdB_BcA8Cqq8N8yrTAOQahquvOnlAhqiFbvlcEhyEq4EdcYSovmTgYs93ZqvlMDl4ZW1siYWNjdDpSYXBoeVN0b25laG9yc2VAbG9jYWxob3N0IiwgIjc1RDNEUm1jeHVJSmlLdHhWTk5EUW53c0U2UmNXRmdSeExmd0dvVjFVcTAiXQ; '
web (stderr)         |                 'session=SUnhbMY18ECNkM2aUif5waSjFb6hLsd14xR8zmGBa9WjrudAtf2oZ4Eo6DOweN13AxMJL1FK2j8frxI1kj-1llsxNjYyNDU4MDMxLCAxNjYyNDU3MTQ3LjY2NjE0ODIsIHsiX2NzcmZ0XyI6ICIyNjZlZTJlYmUzZjU0NjIxODliZWY5NjJkODM0MWRjMyJ9XQ',
web (stderr)         |  'HTTP_HOST': 'localhost:5000',
web (stderr)         |  'HTTP_ORIGIN': 'http://localhost:5000',
web (stderr)         |  'HTTP_REFERER': 'http://localhost:5000/admin/oauthclients/new',
web (stderr)         |  'HTTP_SEC_CH_UA': '"Chromium";v="102", " Not A;Brand";v="99"',
web (stderr)         |  'HTTP_SEC_CH_UA_MOBILE': '?0',
web (stderr)         |  'HTTP_SEC_FETCH_DEST': 'document',
web (stderr)         |  'HTTP_SEC_FETCH_MODE': 'navigate',
web (stderr)         |  'HTTP_SEC_FETCH_SITE': 'same-origin',
web (stderr)         |  'HTTP_SEC_FETCH_USER': '?1',
web (stderr)         |  'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
web (stderr)         |  'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 '
web (stderr)         |                     '(KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36',
web (stderr)         |  'PATH_INFO': '/admin/oauthclients/new',
web (stderr)         |  'QUERY_STRING': '',
web (stderr)         |  'RAW_URI': '/admin/oauthclients/new',
web (stderr)         |  'REMOTE_ADDR': '127.0.0.1',
web (stderr)         |  'REMOTE_PORT': '39450',
web (stderr)         |  'REQUEST_METHOD': 'POST',
web (stderr)         |  'SCRIPT_NAME': '',
web (stderr)         |  'SERVER_NAME': '0.0.0.0',
web (stderr)         |  'SERVER_PORT': '5000',
web (stderr)         |  'SERVER_PROTOCOL': 'HTTP/1.1',
web (stderr)         |  'SERVER_SOFTWARE': 'gunicorn/20.1.0',
web (stderr)         |  'gunicorn.socket': <socket.socket fd=11, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 5000), raddr=('127.0.0.1', 39450)>,
web (stderr)         |  'retry.attempt': 0,
web (stderr)         |  'retry.attempts': 3,
web (stderr)         |  'tm.active': True,
web (stderr)         |  'tm.manager': <transaction._manager.TransactionManager object at 0x7f8af6ee01f0>,
web (stderr)         |  'webob._body_file': (<_io.BufferedReader>,
web (stderr)         |                       <gunicorn.http.body.Body object at 0x7f8af6ec5d60>),
web (stderr)         |  'webob._parsed_cookies': ({'auth': '86Ndf7oP3eLH-tGwtXNdB_BcA8Cqq8N8yrTAOQahquvOnlAhqiFbvlcEhyEq4EdcYSovmTgYs93ZqvlMDl4ZW1siYWNjdDpSYXBoeVN0b25laG9yc2VAbG9jYWxob3N0IiwgIjc1RDNEUm1jeHVJSmlLdHhWTk5EUW53c0U2UmNXRmdSeExmd0dvVjFVcTAiXQ',
web (stderr)         |                             'session': 'SUnhbMY18ECNkM2aUif5waSjFb6hLsd14xR8zmGBa9WjrudAtf2oZ4Eo6DOweN13AxMJL1FK2j8frxI1kj-1llsxNjYyNDU4MDMxLCAxNjYyNDU3MTQ3LjY2NjE0ODIsIHsiX2NzcmZ0XyI6ICIyNjZlZTJlYmUzZjU0NjIxODliZWY5NjJkODM0MWRjMyJ9XQ'},
web (stderr)         |                            'auth=86Ndf7oP3eLH-tGwtXNdB_BcA8Cqq8N8yrTAOQahquvOnlAhqiFbvlcEhyEq4EdcYSovmTgYs93ZqvlMDl4ZW1siYWNjdDpSYXBoeVN0b25laG9yc2VAbG9jYWxob3N0IiwgIjc1RDNEUm1jeHVJSmlLdHhWTk5EUW53c0U2UmNXRmdSeExmd0dvVjFVcTAiXQ; '
web (stderr)         |                            'session=SUnhbMY18ECNkM2aUif5waSjFb6hLsd14xR8zmGBa9WjrudAtf2oZ4Eo6DOweN13AxMJL1FK2j8frxI1kj-1llsxNjYyNDU4MDMxLCAxNjYyNDU3MTQ3LjY2NjE0ODIsIHsiX2NzcmZ0XyI6ICIyNjZlZTJlYmUzZjU0NjIxODliZWY5NjJkODM0MWRjMyJ9XQ'),
web (stderr)         |  'webob._parsed_post_vars': (MultiDict([('__formid__', 'deform'), ('csrf_token', '266ee2ebe3f5462189bef962d8341dc3'), ('name', 'RaphyStonehorse'), ('authority', 'localhost'), ('grant_type', 'authorization_code'), ('trusted', 'true'), ('redirect_url', ''), ('Register_client', 'Register_client')]),
web (stderr)         |                              <_io.BytesIO object at 0x7f8af6319e50>),
web (stderr)         |  'webob._parsed_query_vars': (GET([]), ''),
web (stderr)         |  'webob.is_body_seekable': True,
web (stderr)         |  'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f8af6ec59d0>,
web (stderr)         |  'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
web (stderr)         |  'wsgi.input': <_io.BytesIO object at 0x7f8af6319e50>,
web (stderr)         |  'wsgi.input_terminated': True,
web (stderr)         |  'wsgi.multiprocess': False,
web (stderr)         |  'wsgi.multithread': False,
web (stderr)         |  'wsgi.run_once': False,
web (stderr)         |  'wsgi.url_scheme': 'http',
web (stderr)         |  'wsgi.version': (1, 0)}
web (stderr)         | 
web (stderr)         | 
web (stderr)         | PARAMETERS
web (stderr)         | 
web (stderr)         | NestedMultiDict([('__formid__', 'deform'), ('csrf_token', '266ee2ebe3f5462189bef962d8341dc3'), ('name', 'RaphyStonehorse'), ('authority', 'localhost'), ('grant_type', 'authorization_code'), ('trusted', 'true'), ('redirect_url', ''), ('Register_client', 'Register_client')])
web (stderr)         | 
web (stderr)         | 
web (stderr)         | UNAUTHENTICATED USER
web (stderr)         | 
web (stderr)         | acct:RaphyStonehorse@localhost
web (stderr)         | 
web (stderr)         | Traceback (most recent call last):
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
web (stderr)         |     self.dialect.do_execute(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute
web (stderr)         |     cursor.execute(statement, parameters)
web (stderr)         | psycopg2.errors.CheckViolation: new row for relation "authclient" violates check constraint "ck__authclient__authz_grant_redirect_uri"
web (stderr)         | DETAIL:  Failing row contains (2022-09-06 09:56:56.414071, 2022-09-06 09:56:56.414077, 3df020ca-2dca-11ed-ba34-17e91bae75c7, RaphyStonehorse, null, localhost, authorization_code, code, null, t).
web (stderr)         | 
web (stderr)         | 
web (stderr)         | The above exception was the direct cause of the following exception:
web (stderr)         | 
web (stderr)         | Traceback (most recent call last):
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid_exclog/__init__.py", line 157, in exclog_tween
web (stderr)         |     response = handler(request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 34, in tween
web (stderr)         |     return check(request, handler, registry)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 109, in ascii_safe_redirects_tween_factory
web (stderr)         |     response = handler(request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/router.py", line 143, in handle_request
web (stderr)         |     response = _call_view(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sentry_sdk/integrations/pyramid.py", line 90, in sentry_patched_call_view
web (stderr)         |     return old_call_view(registry, request, *args, **kwargs)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/view.py", line 674, in _call_view
web (stderr)         |     response = view_callable(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/config/views.py", line 151, in __call__
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/config/views.py", line 170, in attr_view
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/config/views.py", line 196, in predicate_wrapper
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 375, in authdebug_view
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 319, in secured_view
web (stderr)         |     return view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 427, in rendered_view
web (stderr)         |     result = view(context, request)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/pyramid/viewderivers.py", line 113, in _class_requestonly_view
web (stderr)         |     response = getattr(inst, attr)()
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/h/views/admin/oauthclients.py", line 82, in post
web (stderr)         |     return form.handle_form_submission(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/h/form.py", line 123, in handle_form_submission
web (stderr)         |     result = on_success(appstruct)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/h/views/admin/oauthclients.py", line 77, in on_success
web (stderr)         |     self.request.db.flush()
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 3383, in flush
web (stderr)         |     self._flush(objects)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 3523, in _flush
web (stderr)         |     transaction.rollback(_capture_exception=True)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
web (stderr)         |     compat.raise_(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
web (stderr)         |     raise exception
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 3483, in _flush
web (stderr)         |     flush_context.execute()
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute
web (stderr)         |     rec.execute(self)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 630, in execute
web (stderr)         |     util.preloaded.orm_persistence.save_obj(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 245, in save_obj
web (stderr)         |     _emit_insert_statements(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1238, in _emit_insert_statements
web (stderr)         |     result = connection._execute_20(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1705, in _execute_20
web (stderr)         |     return meth(self, args_10style, kwargs_10style, execution_options)
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 333, in _execute_on_connection
web (stderr)         |     return connection._execute_clauseelement(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement
web (stderr)         |     ret = self._execute_context(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context
web (stderr)         |     self._handle_dbapi_exception(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception
web (stderr)         |     util.raise_(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
web (stderr)         |     raise exception
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
web (stderr)         |     self.dialect.do_execute(
web (stderr)         |   File "/home/raphy/min/js/hypothesis/h/.tox/dev/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute
web (stderr)         |     cursor.execute(statement, parameters)
web (stderr)         | sqlalchemy.exc.IntegrityError: (psycopg2.errors.CheckViolation) new row for relation "authclient" violates check constraint "ck__authclient__authz_grant_redirect_uri"
web (stderr)         | DETAIL:  Failing row contains (2022-09-06 09:56:56.414071, 2022-09-06 09:56:56.414077, 3df020ca-2dca-11ed-ba34-17e91bae75c7, RaphyStonehorse, null, localhost, authorization_code, code, null, t).
web (stderr)         | 
web (stderr)         | [SQL: INSERT INTO authclient (created, updated, name, secret, authority, grant_type, response_type, redirect_uri, trusted) VALUES (%(created)s, %(updated)s, %(name)s, %(secret)s, %(authority)s, %(grant_type)s, %(response_type)s, %(redirect_uri)s, %(trusted)s) RETURNING authclient.id]
web (stderr)         | [parameters: {'created': datetime.datetime(2022, 9, 6, 9, 56, 56, 414071), 'updated': datetime.datetime(2022, 9, 6, 9, 56, 56, 414077), 'name': 'RaphyStonehorse', 'secret': None, 'authority': 'localhost', 'grant_type': 'authorization_code', 'response_type': 'code', 'redirect_uri': None, 'trusted': True}]
web (stderr)         | (Background on this error at: https://sqlalche.me/e/14/gkpj)

raphy@pc:~/min/js/hypothesis$ git clone 'https://github.com/hypothesis/client.git'
Cloning into 'client'...
remote: Enumerating objects: 85508, done.
remote: Counting objects: 100% (329/329), done.
remote: Compressing objects: 100% (182/182), done.
remote: Total 85508 (delta 226), reused 214 (delta 147), pack-reused 85179
Receiving objects: 100% (85508/85508), 46.04 MiB | 14.36 MiB/s, done.
Resolving deltas: 100% (56518/56518), done.
raphy@pc:~/min/js/hypothesis$ cd client/
raphy@pc:~/min/js/hypothesis/client$ make dev
yarn install
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 14.47s.
node_modules/.bin/gulp watch
[11:36:20] Using gulpfile ~/min/js/hypothesis/client/gulpfile.mjs
[11:36:20] Starting 'watch'...
[11:36:20] Starting 'serve-package'...
[11:36:20] Starting 'serve-test-pages'...
[11:36:20] Starting 'watch-boot-script'...
[11:36:20] Starting 'watch-css'...
[11:36:20] Starting 'watch-fonts'...
[11:36:20] Starting 'watch-js'...
[11:36:20] Starting 'build-css'...
[11:36:20] Starting 'build-fonts'...
[11:36:20] Package served at http://localhost:3001/hypothesis
[11:36:20] Primary web server started at http://localhost:3000/
[11:36:20] Alternate web server started at http://localhost:3002/
[11:36:20] Starting 'build-annotator-tailwind-css'...
[11:36:20] Starting 'build-sidebar-tailwind-css'...
[11:36:20] Starting 'build-standalone-css'...
[11:36:23] Finished 'build-annotator-tailwind-css' after 2.99 s
[11:36:23] Finished 'build-sidebar-tailwind-css' after 2.99 s
[11:36:23] Finished 'build-standalone-css' after 2.99 s
[11:36:23] Finished 'build-css' after 3 s
[11:36:23] Starting 'watchCSS'...
[11:36:23] JS build starting...
[11:36:23] Finished 'build-fonts' after 3.49 s
[11:36:23] Starting 'watchFonts'...
[11:36:35] JS build completed.
[11:36:35] Finished 'watch-js' after 15 s
robertknight commented 2 years ago

This line of the error message indicates there was a problem with the "Redirect URL" field:

web (stderr)         | psycopg2.errors.CheckViolation: new row for relation "authclient" violates check constraint "ck__authclient__authz_grant_redirect_uri"

This field is required and must be a URL. It shouldn't be possible to submit the form if that field is empty.

I switched from the unmaintained https://github.com/wexond/browser-base to the living maintained https://github.com/minbrowser/min .

If you're using custom / niche browsers then be aware that Hypothesis developers are not going to be familiar with it, and you will need to be capable of doing most of the debugging yourself. If you find an issue that can be reproduced with Chrome, Firefox or Safari then it is much more likely that we can look at it.

raphael10-collab commented 2 years ago

With browser-extension/settings/custom.json/ :

{
  "buildType": "dev",

  "apiUrl": "http://localhost:5000/api/",
  "authDomain": "localhost",
  "bouncerUrl": "http://localhost:8000/",
  "serviceUrl": "http://localhost:5000/",
  "oauthClientId": "be589cea-2de0-11ed-ba34-0357cb0753bb",
  "browserIsChrome": true,
  "appType": "chrome-extension"
}

I get :

hypothesis/browser-extension$ make build SETTINGS_FILE=settings/custom.json 
tools/settings.js settings/custom.json > build/settings.json.tmp
rsync --checksum build/settings.json.tmp build/settings.json
rm build/settings.json.tmp
make: *** No rule to make target 'node_modules/hypothesis/build/manifest.json', needed by 'build/client/build'.  Stop.
leedenison commented 1 year ago

Closing this issue due to lack of activity. If this continues to be an issue, please reopen with additional context.