BlitzKraft/saythanks.io
View on GitHubChanged github username; violates uniqueness constraint
Open
#397 opened on Mar 23, 2026
help wanted
Repository metrics
- Stars
- (1,290 stars)
- PR merge metrics
- (PR metrics pending)
Description
daveio has become synmux. Can you please update it in the backend so I can sign in with GitHub?
The issue is on record ID 66192.
Thanks!
Log:
sqlalchemy.exc.IntegrityError
sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "inboxes_pk"
DETAIL: Key (auth_id)=(github|66192) already exists.
[SQL: 'INSERT into inboxes (slug, auth_id,email) VALUES (%(slug)s, %(auth_id)s, %(email)s)'] [parameters: {'slug': 'synmux', 'auth_id': 'github|66192', 'email': 'syn@syn.as'}]
Traceback (most recent call last)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
context)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
cursor.execute(statement, parameters)
The above exception was the direct cause of the following exception:
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2091, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.6/site-packages/whitenoise/base.py", line 85, in __call__
return self.application(environ, start_response)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2076, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1518, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/opt/saythanks.io/saythanks/core.py", line 467, in callback_handling
storage.Inbox.store(nickname, userid, email)
File "/opt/saythanks.io/saythanks/storage.py", line 172, in store
conn.execute(q, slug=slug, auth_id=auth_id, email=email)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 945, in execute
return meth(self, multiparams, params)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
context)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
exc_info
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
context)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "inboxes_pk"
DETAIL: Key (auth_id)=(github|66192) already exists.
[SQL: 'INSERT into inboxes (slug, auth_id,email) VALUES (%(slug)s, %(auth_id)s, %(email)s)'] [parameters: {'slug': 'synmux', 'auth_id': 'github|66192', 'email': 'syn@syn.as'}]
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.
You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:
dump() shows all variables in the frame
dump(obj) dumps all that's known about the object
Brought to you by DON'T PANIC, your friendly Werkzeug powered traceback interpreter.