nextcloud / nextcloud/server

[Bug]: DbalException An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '...' for key 'user_status_uid_ix'

Open
#51,363 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop 30-feedback 31-feedback bug feature: status
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

⚠️ This issue respects the following points: ⚠️
Bug description

There's an error in the log:

DbalException An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'

Steps to reproduce

I'm not sure. I mainly use my nextcloud for the calendar.

Expected behavior

No error in log

Nextcloud Server version

30

Operating system

RHEL/CentOS

PHP engine version

PHP 8.3

Web server

Apache (supported)

Database engine version

MySQL

Is this bug present after an update or on a fresh install?

Fresh Nextcloud Server install

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report
{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "cloud.jendrik.eu"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "30.0.6.2",
        "overwrite.cli.url": "https:\/\/cloud.jendrik.eu",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "sendmail",
        "mail_sendmailmode": "pipe",
        "htaccess.RewriteBase": "\/",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": "0",
            "timeout": "1.5"
        },
        "filelocking.enabled": "true",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "default_phone_region": "DE",
        "maintenance_window_start": 0,
        "skeletondirectory": ""
    }
}
List of activated Apps
Enabled:
  - activity: 3.0.0
  - bruteforcesettings: 3.0.0
  - calendar: 5.1.3
  - circles: 30.0.0
  - cloud_federation_api: 1.13.0
  - contactsinteraction: 1.11.0
  - dashboard: 7.10.0
  - dav: 1.31.1
  - federatedfilesharing: 1.20.0
  - federation: 1.20.0
  - files: 2.2.0
  - files_downloadlimit: 3.0.0
  - files_pdfviewer: 3.0.0
  - files_sharing: 1.22.0
  - files_trashbin: 1.20.1
  - files_versions: 1.23.0
  - firstrunwizard: 3.0.0
  - logreader: 3.0.0
  - lookup_server_connector: 1.18.0
  - nextcloud_announcements: 2.0.0
  - notifications: 3.0.0
  - oauth2: 1.18.1
  - password_policy: 2.0.0
  - privacy: 2.0.0
  - provisioning_api: 1.20.0
  - related_resources: 1.5.0
  - serverinfo: 2.0.0
  - settings: 1.13.0
  - text: 4.1.0
  - theming: 2.6.0
  - twofactor_backupcodes: 1.19.0
  - updatenotification: 1.20.0
  - user_status: 1.10.0
  - viewer: 3.0.0
  - workflowengine: 2.12.0
Disabled:
  - admin_audit: 1.20.0
  - app_api: 4.0.6 (installed 4.0.6)
  - comments: 1.20.1 (installed 1.20.1)
  - encryption: 2.18.0
  - files_external: 1.22.0
  - files_reminders: 1.3.0 (installed 1.3.0)
  - photos: 3.0.2 (installed 3.0.2)
  - recommendations: 3.0.0 (installed 3.0.0)
  - sharebymail: 1.20.0 (installed 1.20.0)
  - support: 2.0.0 (installed 2.0.0)
  - survey_client: 2.0.0 (installed 2.0.0)
  - suspicious_login: 8.0.0
  - systemtags: 1.20.0 (installed 1.20.0)
  - twofactor_nextcloud_notification: 4.0.0
  - twofactor_totp: 12.0.0-dev
  - user_ldap: 1.21.0
  - weather_status: 1.10.0 (installed 1.10.0)
  - webhook_listeners: 1.1.0-dev (installed 1.1.0-dev)
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
{
  "reqId": "Z8WGuUcpXdUL7x_IvkMa_wAAAM4",
  "level": 3,
  "time": "2025-03-03T10:38:49+00:00",
  "remoteAddr": "2a02:560:558b:c300:d9df:dd13:2829:5c75",
  "user": "jonas",
  "app": "no app in context",
  "method": "PUT",
  "url": "/ocs/v2.php/apps/user_status/api/v1/heartbeat?format=json",
  "message": "An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'",
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0",
  "version": "30.0.6.2",
  "exception": {
    "Exception": "OC\\DB\\Exceptions\\DbalException",
    "Message": "An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'",
    "Code": 1062,
    "Trace": [
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/ConnectionAdapter.php",
        "line": 69,
        "function": "wrap",
        "class": "OC\\DB\\Exceptions\\DbalException",
        "type": "::",
        "args": [
          {
            "__class__": "Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 306,
        "function": "executeStatement",
        "class": "OC\\DB\\ConnectionAdapter",
        "type": "->",
        "args": [
          "INSERT INTO `*PREFIX*user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
          {
            "0": "And 2 more entries, set log level to debug to see all entries",
            "dcValue1": "jonas",
            "dcValue2": "away",
            "dcValue3": 1740998329,
            "dcValue4": true,
            "dcValue5": false
          },
          {
            "0": "And 2 more entries, set log level to debug to see all entries",
            "dcValue1": 2,
            "dcValue2": 2,
            "dcValue3": 1,
            "dcValue4": "boolean",
            "dcValue5": "boolean"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/public/AppFramework/Db/QBMapper.php",
        "line": 115,
        "function": "executeStatement",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Service/StatusService.php",
        "line": 316,
        "function": "insert",
        "class": "OCP\\AppFramework\\Db\\QBMapper",
        "type": "->",
        "args": [
          {
            "__class__": "OCA\\UserStatus\\Db\\UserStatus",
            "id": null,
            "userId": "jonas",
            "status": "away",
            "statusTimestamp": 1740998329,
            "isUserDefined": true,
            "messageId": "meeting",
            "customIcon": null,
            "customMessage": null,
            "clearAt": null,
            "isBackup": false
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/apps/dav/lib/CalDAV/Status/StatusService.php",
        "line": 140,
        "function": "setUserStatus",
        "class": "OCA\\UserStatus\\Service\\StatusService",
        "type": "->",
        "args": [
          "jonas",
          "away",
          "meeting",
          true
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Listener/UserLiveStatusListener.php",
        "line": 57,
        "function": "processCalendarStatus",
        "class": "OCA\\DAV\\CalDAV\\Status\\StatusService",
        "type": "->",
        "args": [
          "jonas"
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/ServiceEventListener.php",
        "line": 68,
        "function": "handle",
        "class": "OCA\\UserStatus\\Listener\\UserLiveStatusListener",
        "type": "->",
        "args": [
          {
            "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
        "line": 220,
        "function": "__invoke",
        "class": "OC\\EventDispatcher\\ServiceEventListener",
        "type": "->",
        "args": [
          {
            "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
          },
          "OCP\\User\\Events\\UserLiveStatusEvent",
          {
            "__class__": "Symfony\\Component\\EventDispatcher\\EventDispatcher"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
        "line": 56,
        "function": "callListeners",
        "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
        "type": "->",
        "args": [
          [
            {
              "__class__": "Closure"
            }
          ],
          "OCP\\User\\Events\\UserLiveStatusEvent",
          {
            "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
        "line": 67,
        "function": "dispatch",
        "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
          },
          "OCP\\User\\Events\\UserLiveStatusEvent"
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
        "line": 79,
        "function": "dispatch",
        "class": "OC\\EventDispatcher\\EventDispatcher",
        "type": "->",
        "args": [
          "OCP\\User\\Events\\UserLiveStatusEvent",
          {
            "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Controller/HeartbeatController.php",
        "line": 84,
        "function": "dispatchTyped",
        "class": "OC\\EventDispatcher\\EventDispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 208,
        "function": "heartbeat",
        "class": "OCA\\UserStatus\\Controller\\HeartbeatController",
        "type": "->",
        "args": [
          "online"
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 114,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
          },
          "heartbeat"
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/App.php",
        "line": 161,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
          },
          "heartbeat"
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/lib/private/Route/Router.php",
        "line": 302,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\UserStatus\\Controller\\HeartbeatController",
          "heartbeat",
          {
            "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
          },
          {
            "_route": "ocs.user_status.heartbeat.heartbeat"
          }
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/ocs/v1.php",
        "line": 43,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/ocsapp/apps/user_status/api/v1/heartbeat"
        ]
      },
      {
        "file": "/var/www/virtual/jendrik/SERVER/ocs/v2.php",
        "line": 7,
        "args": [
          "/var/www/virtual/jendrik/SERVER/ocs/v1.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/virtual/jendrik/SERVER/lib/private/DB/Exceptions/DbalException.php",
    "Line": 54,
    "Previous": {
      "Exception": "Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException",
      "Message": "An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'",
      "Code": 1062,
      "Trace": [
        {
          "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connection.php",
          "line": 1976,
          "function": "convert",
          "class": "Doctrine\\DBAL\\Driver\\API\\MySQL\\ExceptionConverter",
          "type": "->",
          "args": [
            {
              "__class__": "Doctrine\\DBAL\\Driver\\PDO\\Exception"
            },
            {
              "__class__": "Doctrine\\DBAL\\Query"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connection.php",
          "line": 1918,
          "function": "handleDriverException",
          "class": "Doctrine\\DBAL\\Connection",
          "type": "->",
          "args": [
            {
              "__class__": "Doctrine\\DBAL\\Driver\\PDO\\Exception"
            },
            {
              "__class__": "Doctrine\\DBAL\\Query"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connection.php",
          "line": 1218,
          "function": "convertExceptionDuringQuery",
          "class": "Doctrine\\DBAL\\Connection",
          "type": "->",
          "args": [
            {
              "__class__": "Doctrine\\DBAL\\Driver\\PDO\\Exception"
            },
            "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(?, ?, ?, ?, ?, ?, ?)",
            [
              "jonas",
              "away",
              1740998329,
              true,
              false,
              "And 2 more entries, set log level to debug to see all entries"
            ],
            [
              2,
              2,
              1,
              "boolean",
              "boolean",
              "And 2 more entries, set log level to debug to see all entries"
            ]
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php",
          "line": 292,
          "function": "executeStatement",
          "class": "Doctrine\\DBAL\\Connection",
          "type": "->",
          "args": [
            "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(?, ?, ?, ?, ?, ?, ?)",
            [
              "jonas",
              "away",
              1740998329,
              true,
              false,
              "And 2 more entries, set log level to debug to see all entries"
            ],
            [
              2,
              2,
              1,
              "boolean",
              "boolean",
              "And 2 more entries, set log level to debug to see all entries"
            ]
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/Connection.php",
          "line": 462,
          "function": "executeStatement",
          "class": "Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection",
          "type": "->",
          "args": [
            "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
            {
              "0": "And 2 more entries, set log level to debug to see all entries",
              "dcValue1": "jonas",
              "dcValue2": "away",
              "dcValue3": 1740998329,
              "dcValue4": true,
              "dcValue5": false
            },
            {
              "0": "And 2 more entries, set log level to debug to see all entries",
              "dcValue1": 2,
              "dcValue2": 2,
              "dcValue3": 1,
              "dcValue4": "boolean",
              "dcValue5": "boolean"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/ConnectionAdapter.php",
          "line": 67,
          "function": "executeStatement",
          "class": "OC\\DB\\Connection",
          "type": "->",
          "args": [
            "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
            {
              "0": "And 2 more entries, set log level to debug to see all entries",
              "dcValue1": "jonas",
              "dcValue2": "away",
              "dcValue3": 1740998329,
              "dcValue4": true,
              "dcValue5": false
            },
            {
              "0": "And 2 more entries, set log level to debug to see all entries",
              "dcValue1": 2,
              "dcValue2": 2,
              "dcValue3": 1,
              "dcValue4": "boolean",
              "dcValue5": "boolean"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/QueryBuilder/QueryBuilder.php",
          "line": 306,
          "function": "executeStatement",
          "class": "OC\\DB\\ConnectionAdapter",
          "type": "->",
          "args": [
            "INSERT INTO `*PREFIX*user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
            {
              "0": "And 2 more entries, set log level to debug to see all entries",
              "dcValue1": "jonas",
              "dcValue2": "away",
              "dcValue3": 1740998329,
              "dcValue4": true,
              "dcValue5": false
            },
            {
              "0": "And 2 more entries, set log level to debug to see all entries",
              "dcValue1": 2,
              "dcValue2": 2,
              "dcValue3": 1,
              "dcValue4": "boolean",
              "dcValue5": "boolean"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/public/AppFramework/Db/QBMapper.php",
          "line": 115,
          "function": "executeStatement",
          "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
          "type": "->",
          "args": []
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Service/StatusService.php",
          "line": 316,
          "function": "insert",
          "class": "OCP\\AppFramework\\Db\\QBMapper",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\UserStatus\\Db\\UserStatus",
              "id": null,
              "userId": "jonas",
              "status": "away",
              "statusTimestamp": 1740998329,
              "isUserDefined": true,
              "messageId": "meeting",
              "customIcon": null,
              "customMessage": null,
              "clearAt": null,
              "isBackup": false
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/apps/dav/lib/CalDAV/Status/StatusService.php",
          "line": 140,
          "function": "setUserStatus",
          "class": "OCA\\UserStatus\\Service\\StatusService",
          "type": "->",
          "args": [
            "jonas",
            "away",
            "meeting",
            true
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Listener/UserLiveStatusListener.php",
          "line": 57,
          "function": "processCalendarStatus",
          "class": "OCA\\DAV\\CalDAV\\Status\\StatusService",
          "type": "->",
          "args": [
            "jonas"
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/ServiceEventListener.php",
          "line": 68,
          "function": "handle",
          "class": "OCA\\UserStatus\\Listener\\UserLiveStatusListener",
          "type": "->",
          "args": [
            {
              "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
          "line": 220,
          "function": "__invoke",
          "class": "OC\\EventDispatcher\\ServiceEventListener",
          "type": "->",
          "args": [
            {
              "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
            },
            "OCP\\User\\Events\\UserLiveStatusEvent",
            {
              "__class__": "Symfony\\Component\\EventDispatcher\\EventDispatcher"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
          "line": 56,
          "function": "callListeners",
          "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
          "type": "->",
          "args": [
            [
              {
                "__class__": "Closure"
              }
            ],
            "OCP\\User\\Events\\UserLiveStatusEvent",
            {
              "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
          "line": 67,
          "function": "dispatch",
          "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
          "type": "->",
          "args": [
            {
              "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
            },
            "OCP\\User\\Events\\UserLiveStatusEvent"
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
          "line": 79,
          "function": "dispatch",
          "class": "OC\\EventDispatcher\\EventDispatcher",
          "type": "->",
          "args": [
            "OCP\\User\\Events\\UserLiveStatusEvent",
            {
              "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Controller/HeartbeatController.php",
          "line": 84,
          "function": "dispatchTyped",
          "class": "OC\\EventDispatcher\\EventDispatcher",
          "type": "->",
          "args": [
            {
              "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
          "line": 208,
          "function": "heartbeat",
          "class": "OCA\\UserStatus\\Controller\\HeartbeatController",
          "type": "->",
          "args": [
            "online"
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
          "line": 114,
          "function": "executeController",
          "class": "OC\\AppFramework\\Http\\Dispatcher",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
            },
            "heartbeat"
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/App.php",
          "line": 161,
          "function": "dispatch",
          "class": "OC\\AppFramework\\Http\\Dispatcher",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
            },
            "heartbeat"
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/lib/private/Route/Router.php",
          "line": 302,
          "function": "main",
          "class": "OC\\AppFramework\\App",
          "type": "::",
          "args": [
            "OCA\\UserStatus\\Controller\\HeartbeatController",
            "heartbeat",
            {
              "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
            },
            {
              "_route": "ocs.user_status.heartbeat.heartbeat"
            }
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/ocs/v1.php",
          "line": 43,
          "function": "match",
          "class": "OC\\Route\\Router",
          "type": "->",
          "args": [
            "/ocsapp/apps/user_status/api/v1/heartbeat"
          ]
        },
        {
          "file": "/var/www/virtual/jendrik/SERVER/ocs/v2.php",
          "line": 7,
          "args": [
            "/var/www/virtual/jendrik/SERVER/ocs/v1.php"
          ],
          "function": "require_once"
        }
      ],
      "File": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php",
      "Line": 62,
      "Previous": {
        "Exception": "Doctrine\\DBAL\\Driver\\PDO\\Exception",
        "Message": "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'",
        "Code": 1062,
        "Trace": [
          {
            "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php",
            "line": 132,
            "function": "new",
            "class": "Doctrine\\DBAL\\Driver\\PDO\\Exception",
            "type": "::",
            "args": [
              {
                "__class__": "PDOException",
                "errorInfo": [
                  "23000",
                  1062,
                  "Duplicate entry 'jonas' for key 'user_status_uid_ix'"
                ]
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connection.php",
            "line": 1212,
            "function": "execute",
            "class": "Doctrine\\DBAL\\Driver\\PDO\\Statement",
            "type": "->",
            "args": []
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php",
            "line": 292,
            "function": "executeStatement",
            "class": "Doctrine\\DBAL\\Connection",
            "type": "->",
            "args": [
              "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(?, ?, ?, ?, ?, ?, ?)",
              [
                "jonas",
                "away",
                1740998329,
                true,
                false,
                "And 2 more entries, set log level to debug to see all entries"
              ],
              [
                2,
                2,
                1,
                "boolean",
                "boolean",
                "And 2 more entries, set log level to debug to see all entries"
              ]
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/Connection.php",
            "line": 462,
            "function": "executeStatement",
            "class": "Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection",
            "type": "->",
            "args": [
              "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
              {
                "0": "And 2 more entries, set log level to debug to see all entries",
                "dcValue1": "jonas",
                "dcValue2": "away",
                "dcValue3": 1740998329,
                "dcValue4": true,
                "dcValue5": false
              },
              {
                "0": "And 2 more entries, set log level to debug to see all entries",
                "dcValue1": 2,
                "dcValue2": 2,
                "dcValue3": 1,
                "dcValue4": "boolean",
                "dcValue5": "boolean"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/ConnectionAdapter.php",
            "line": 67,
            "function": "executeStatement",
            "class": "OC\\DB\\Connection",
            "type": "->",
            "args": [
              "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
              {
                "0": "And 2 more entries, set log level to debug to see all entries",
                "dcValue1": "jonas",
                "dcValue2": "away",
                "dcValue3": 1740998329,
                "dcValue4": true,
                "dcValue5": false
              },
              {
                "0": "And 2 more entries, set log level to debug to see all entries",
                "dcValue1": 2,
                "dcValue2": 2,
                "dcValue3": 1,
                "dcValue4": "boolean",
                "dcValue5": "boolean"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/QueryBuilder/QueryBuilder.php",
            "line": 306,
            "function": "executeStatement",
            "class": "OC\\DB\\ConnectionAdapter",
            "type": "->",
            "args": [
              "INSERT INTO `*PREFIX*user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
              {
                "0": "And 2 more entries, set log level to debug to see all entries",
                "dcValue1": "jonas",
                "dcValue2": "away",
                "dcValue3": 1740998329,
                "dcValue4": true,
                "dcValue5": false
              },
              {
                "0": "And 2 more entries, set log level to debug to see all entries",
                "dcValue1": 2,
                "dcValue2": 2,
                "dcValue3": 1,
                "dcValue4": "boolean",
                "dcValue5": "boolean"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/public/AppFramework/Db/QBMapper.php",
            "line": 115,
            "function": "executeStatement",
            "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
            "type": "->",
            "args": []
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Service/StatusService.php",
            "line": 316,
            "function": "insert",
            "class": "OCP\\AppFramework\\Db\\QBMapper",
            "type": "->",
            "args": [
              {
                "__class__": "OCA\\UserStatus\\Db\\UserStatus",
                "id": null,
                "userId": "jonas",
                "status": "away",
                "statusTimestamp": 1740998329,
                "isUserDefined": true,
                "messageId": "meeting",
                "customIcon": null,
                "customMessage": null,
                "clearAt": null,
                "isBackup": false
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/apps/dav/lib/CalDAV/Status/StatusService.php",
            "line": 140,
            "function": "setUserStatus",
            "class": "OCA\\UserStatus\\Service\\StatusService",
            "type": "->",
            "args": [
              "jonas",
              "away",
              "meeting",
              true
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Listener/UserLiveStatusListener.php",
            "line": 57,
            "function": "processCalendarStatus",
            "class": "OCA\\DAV\\CalDAV\\Status\\StatusService",
            "type": "->",
            "args": [
              "jonas"
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/ServiceEventListener.php",
            "line": 68,
            "function": "handle",
            "class": "OCA\\UserStatus\\Listener\\UserLiveStatusListener",
            "type": "->",
            "args": [
              {
                "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
            "line": 220,
            "function": "__invoke",
            "class": "OC\\EventDispatcher\\ServiceEventListener",
            "type": "->",
            "args": [
              {
                "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
              },
              "OCP\\User\\Events\\UserLiveStatusEvent",
              {
                "__class__": "Symfony\\Component\\EventDispatcher\\EventDispatcher"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
            "line": 56,
            "function": "callListeners",
            "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
            "type": "->",
            "args": [
              [
                {
                  "__class__": "Closure"
                }
              ],
              "OCP\\User\\Events\\UserLiveStatusEvent",
              {
                "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
            "line": 67,
            "function": "dispatch",
            "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
            "type": "->",
            "args": [
              {
                "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
              },
              "OCP\\User\\Events\\UserLiveStatusEvent"
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
            "line": 79,
            "function": "dispatch",
            "class": "OC\\EventDispatcher\\EventDispatcher",
            "type": "->",
            "args": [
              "OCP\\User\\Events\\UserLiveStatusEvent",
              {
                "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Controller/HeartbeatController.php",
            "line": 84,
            "function": "dispatchTyped",
            "class": "OC\\EventDispatcher\\EventDispatcher",
            "type": "->",
            "args": [
              {
                "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
            "line": 208,
            "function": "heartbeat",
            "class": "OCA\\UserStatus\\Controller\\HeartbeatController",
            "type": "->",
            "args": [
              "online"
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
            "line": 114,
            "function": "executeController",
            "class": "OC\\AppFramework\\Http\\Dispatcher",
            "type": "->",
            "args": [
              {
                "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
              },
              "heartbeat"
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/App.php",
            "line": 161,
            "function": "dispatch",
            "class": "OC\\AppFramework\\Http\\Dispatcher",
            "type": "->",
            "args": [
              {
                "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
              },
              "heartbeat"
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/lib/private/Route/Router.php",
            "line": 302,
            "function": "main",
            "class": "OC\\AppFramework\\App",
            "type": "::",
            "args": [
              "OCA\\UserStatus\\Controller\\HeartbeatController",
              "heartbeat",
              {
                "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
              },
              {
                "_route": "ocs.user_status.heartbeat.heartbeat"
              }
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/ocs/v1.php",
            "line": 43,
            "function": "match",
            "class": "OC\\Route\\Router",
            "type": "->",
            "args": [
              "/ocsapp/apps/user_status/api/v1/heartbeat"
            ]
          },
          {
            "file": "/var/www/virtual/jendrik/SERVER/ocs/v2.php",
            "line": 7,
            "args": [
              "/var/www/virtual/jendrik/SERVER/ocs/v1.php"
            ],
            "function": "require_once"
          }
        ],
        "File": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php",
        "Line": 24,
        "Previous": {
          "Exception": "PDOException",
          "Message": "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'",
          "Code": "23000",
          "Trace": [
            {
              "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php",
              "line": 130,
              "function": "execute",
              "class": "PDOStatement",
              "type": "->",
              "args": [
                null
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connection.php",
              "line": 1212,
              "function": "execute",
              "class": "Doctrine\\DBAL\\Driver\\PDO\\Statement",
              "type": "->",
              "args": []
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php",
              "line": 292,
              "function": "executeStatement",
              "class": "Doctrine\\DBAL\\Connection",
              "type": "->",
              "args": [
                "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(?, ?, ?, ?, ?, ?, ?)",
                [
                  "jonas",
                  "away",
                  1740998329,
                  true,
                  false,
                  "And 2 more entries, set log level to debug to see all entries"
                ],
                [
                  2,
                  2,
                  1,
                  "boolean",
                  "boolean",
                  "And 2 more entries, set log level to debug to see all entries"
                ]
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/Connection.php",
              "line": 462,
              "function": "executeStatement",
              "class": "Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection",
              "type": "->",
              "args": [
                "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
                {
                  "0": "And 2 more entries, set log level to debug to see all entries",
                  "dcValue1": "jonas",
                  "dcValue2": "away",
                  "dcValue3": 1740998329,
                  "dcValue4": true,
                  "dcValue5": false
                },
                {
                  "0": "And 2 more entries, set log level to debug to see all entries",
                  "dcValue1": 2,
                  "dcValue2": 2,
                  "dcValue3": 1,
                  "dcValue4": "boolean",
                  "dcValue5": "boolean"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/ConnectionAdapter.php",
              "line": 67,
              "function": "executeStatement",
              "class": "OC\\DB\\Connection",
              "type": "->",
              "args": [
                "INSERT INTO `oc_user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
                {
                  "0": "And 2 more entries, set log level to debug to see all entries",
                  "dcValue1": "jonas",
                  "dcValue2": "away",
                  "dcValue3": 1740998329,
                  "dcValue4": true,
                  "dcValue5": false
                },
                {
                  "0": "And 2 more entries, set log level to debug to see all entries",
                  "dcValue1": 2,
                  "dcValue2": 2,
                  "dcValue3": 1,
                  "dcValue4": "boolean",
                  "dcValue5": "boolean"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/DB/QueryBuilder/QueryBuilder.php",
              "line": 306,
              "function": "executeStatement",
              "class": "OC\\DB\\ConnectionAdapter",
              "type": "->",
              "args": [
                "INSERT INTO `*PREFIX*user_status` (`user_id`, `status`, `status_timestamp`, `is_user_defined`, `is_backup`, `message_id`, `status_message_timestamp`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7)",
                {
                  "0": "And 2 more entries, set log level to debug to see all entries",
                  "dcValue1": "jonas",
                  "dcValue2": "away",
                  "dcValue3": 1740998329,
                  "dcValue4": true,
                  "dcValue5": false
                },
                {
                  "0": "And 2 more entries, set log level to debug to see all entries",
                  "dcValue1": 2,
                  "dcValue2": 2,
                  "dcValue3": 1,
                  "dcValue4": "boolean",
                  "dcValue5": "boolean"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/public/AppFramework/Db/QBMapper.php",
              "line": 115,
              "function": "executeStatement",
              "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
              "type": "->",
              "args": []
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Service/StatusService.php",
              "line": 316,
              "function": "insert",
              "class": "OCP\\AppFramework\\Db\\QBMapper",
              "type": "->",
              "args": [
                {
                  "__class__": "OCA\\UserStatus\\Db\\UserStatus",
                  "id": null,
                  "userId": "jonas",
                  "status": "away",
                  "statusTimestamp": 1740998329,
                  "isUserDefined": true,
                  "messageId": "meeting",
                  "customIcon": null,
                  "customMessage": null,
                  "clearAt": null,
                  "isBackup": false
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/apps/dav/lib/CalDAV/Status/StatusService.php",
              "line": 140,
              "function": "setUserStatus",
              "class": "OCA\\UserStatus\\Service\\StatusService",
              "type": "->",
              "args": [
                "jonas",
                "away",
                "meeting",
                true
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Listener/UserLiveStatusListener.php",
              "line": 57,
              "function": "processCalendarStatus",
              "class": "OCA\\DAV\\CalDAV\\Status\\StatusService",
              "type": "->",
              "args": [
                "jonas"
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/ServiceEventListener.php",
              "line": 68,
              "function": "handle",
              "class": "OCA\\UserStatus\\Listener\\UserLiveStatusListener",
              "type": "->",
              "args": [
                {
                  "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
              "line": 220,
              "function": "__invoke",
              "class": "OC\\EventDispatcher\\ServiceEventListener",
              "type": "->",
              "args": [
                {
                  "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
                },
                "OCP\\User\\Events\\UserLiveStatusEvent",
                {
                  "__class__": "Symfony\\Component\\EventDispatcher\\EventDispatcher"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
              "line": 56,
              "function": "callListeners",
              "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
              "type": "->",
              "args": [
                [
                  {
                    "__class__": "Closure"
                  }
                ],
                "OCP\\User\\Events\\UserLiveStatusEvent",
                {
                  "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
              "line": 67,
              "function": "dispatch",
              "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
              "type": "->",
              "args": [
                {
                  "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
                },
                "OCP\\User\\Events\\UserLiveStatusEvent"
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/EventDispatcher/EventDispatcher.php",
              "line": 79,
              "function": "dispatch",
              "class": "OC\\EventDispatcher\\EventDispatcher",
              "type": "->",
              "args": [
                "OCP\\User\\Events\\UserLiveStatusEvent",
                {
                  "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/apps/user_status/lib/Controller/HeartbeatController.php",
              "line": 84,
              "function": "dispatchTyped",
              "class": "OC\\EventDispatcher\\EventDispatcher",
              "type": "->",
              "args": [
                {
                  "__class__": "OCP\\User\\Events\\UserLiveStatusEvent"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
              "line": 208,
              "function": "heartbeat",
              "class": "OCA\\UserStatus\\Controller\\HeartbeatController",
              "type": "->",
              "args": [
                "online"
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/Http/Dispatcher.php",
              "line": 114,
              "function": "executeController",
              "class": "OC\\AppFramework\\Http\\Dispatcher",
              "type": "->",
              "args": [
                {
                  "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
                },
                "heartbeat"
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/AppFramework/App.php",
              "line": 161,
              "function": "dispatch",
              "class": "OC\\AppFramework\\Http\\Dispatcher",
              "type": "->",
              "args": [
                {
                  "__class__": "OCA\\UserStatus\\Controller\\HeartbeatController"
                },
                "heartbeat"
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/lib/private/Route/Router.php",
              "line": 302,
              "function": "main",
              "class": "OC\\AppFramework\\App",
              "type": "::",
              "args": [
                "OCA\\UserStatus\\Controller\\HeartbeatController",
                "heartbeat",
                {
                  "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
                },
                {
                  "_route": "ocs.user_status.heartbeat.heartbeat"
                }
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/ocs/v1.php",
              "line": 43,
              "function": "match",
              "class": "OC\\Route\\Router",
              "type": "->",
              "args": [
                "/ocsapp/apps/user_status/api/v1/heartbeat"
              ]
            },
            {
              "file": "/var/www/virtual/jendrik/SERVER/ocs/v2.php",
              "line": 7,
              "args": [
                "/var/www/virtual/jendrik/SERVER/ocs/v1.php"
              ],
              "function": "require_once"
            }
          ],
          "File": "/var/www/virtual/jendrik/SERVER/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php",
          "Line": 130
        }
      }
    },
    "message": "An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'",
    "exception": [],
    "CustomMessage": "An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jonas' for key 'user_status_uid_ix'"
  },
  "id": "67ce9e0367f99"
}
Additional info

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the heartbeat flow from apps/user_status/lib/Controller/HeartbeatController.php through apps/user_status/lib/Listener/UserLiveStatusListener.php and apps/user_status/lib/Service/StatusService.php, using the reported INSERT and unique key as the entry point. Determine why the existing user status is inserted again during calendar status processing; done means the duplicate-entry error no longer occurs and the affected flow is covered by appropriate verification.

Written by the indexing model from the issue text.

Assessment

Tech stack
mysql, php
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.