Dashboard
Admin User
A
⚠️ Error & Missing Content Reports
Monitor system exceptions, external API failures, and missing media resource reports to ensure smooth bot operations.
| # | Phone | Error Type | Report Details | Status | Created At | Actions |
|---|---|---|---|---|---|---|
| 1 | 9979412610 | NO_CONTENT_AVAILABLE |
Blank Poster 'Diamond Club 2nd Month' (ID: 2) does not have an image file or URL.
|
Resolved | 11 Jun 2026, 12:07 PM | |
| 2 | 917896561921 | SYSTEM_ERROR |
Exception: database is locked
Traceback:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py", line 354, in execute
return super().execute(query, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: database is locked
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/api/webhook_processor.py", line 651, in _worker_logic
user_state, _ = UserStateManagement.objects.update_or_create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1009, in update_or_create
obj.save(using=self.db, update_fields=update_fields)
File "/app/core/models.py", line 128, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 892, in save
self.save_base(
File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 998, in save_base
updated = self._save_table(
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 1130, in _save_table
updated = self._do_update(
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 1195, in _do_update
return filtered._update(values) > 0
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1278, in _update
return query.get_compiler(self.db).execute_sql(CURSOR)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 2003, in execute_sql
cursor = super().execute_sql(result_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1574, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 79, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 100, in _execute
with self.db.wrap_database_errors:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py", line 354, in execute
return super().execute(query, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
django.db.utils.OperationalError: database is locked
Fix: Why Did This Happen?
Because SQLite is a file-based database, it locks the entire database file during writes. Since the WABA bot uses custom background threads to handle messages asynchronously (e.g., _worker_logic), multiple concurrent database write operations caused SQLite to lock up.
Additionally, because Django does not automatically clean up database connections for custom background threads, dangling open database connections were holding onto locks on the SQLite file indefinitely.
How I Fixed It:
Dangling Connection Cleanup: Updated the background thread worker logic in
api/webhook_processor.py
to wrap execution inside a finally block that explicitly closes all open database connections when the thread finishes:
python
finally:
from django.db import connections
connections.close_all()
Increased SQLite Timeout: Adjusted the configuration in
myrecharge/settings.py
to raise the SQLite busy timeout to 30 seconds (up from the default of 5 seconds) to allow concurrent threads to wait rather than raising immediate locking errors.
Server Restart: Restarted the application service container so the new timeout settings and thread connection cleanups are active.
|
Resolved | 09 Jun 2026, 03:15 PM | |
| 3 | 9979412610 | NO_CONTENT_AVAILABLE |
No plan rank knowledge material entry found for Rank: SILVER DIRECTOR, Language: ENGLISH.
Fix: PDF ADDED FOR SILVER DIRECTOR
|
Resolved | 09 Jun 2026, 01:03 PM |