xf_mg_media_watch: Race condition / DuplicateKeyException

nocte

Well-known member
Affected version
XFMG 2.3.5
Just found this in my logs:

Code:
XF\Db\DuplicateKeyException: MySQL query error [1062]: Duplicate entry '573987-3509589' for key 'xf_mg_media_watch.PRIMARY' src/XF/Db/AbstractStatement.php:230
Generated by: *** 26.8.2025 at 13:00
Stack trace
INSERT  INTO `xf_mg_media_watch` (`media_id`, `user_id`, `notify_on`, `send_alert`, `send_email`) VALUES (?, ?, ?, ?, ?)
------------

#0 src/XF/Db/Mysqli/Statement.php(207): XF\Db\AbstractStatement->getException('MySQL query err...', 1062, '23000')
#1 src/XF/Db/Mysqli/Statement.php(83): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1062, '23000')
#2 src/XF/Db/AbstractAdapter.php(96): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(219): XF\Db\AbstractAdapter->query('INSERT  INTO `x...', Array)
#4 src/XF/Mvc/Entity/Entity.php(1578): XF\Db\AbstractAdapter->insert('xf_mg_media_wat...', Array, false)
#5 src/XF/Mvc/Entity/Entity.php(1306): XF\Mvc\Entity\Entity->_saveToSource()
#6 src/addons/XFMG/Repository/MediaWatch.php(72): XF\Mvc\Entity\Entity->save()
#7 src/addons/XFMG/Pub/Controller/Media.php(1342): XFMG\Repository\MediaWatch->setWatchState(Object(***\***\XFMG\Entity\MediaItem), Object(***\***\XF\Entity\User), 'watch', Array)
#8 src/XF/Mvc/Dispatcher.php(362): XFMG\Pub\Controller\Media->actionWatch(Object(XF\Mvc\ParameterBag))
#9 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XFMG:Media', 'Watch', Object(XF\Mvc\RouteMatch), Object(***\***\XFMG\Pub\Controller\Media), NULL)
#10 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(***\***\XFMG\Pub\Controller\Media), NULL)
#11 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#12 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#13 src/XF.php(806): XF\App->run()
#14 index.php(23): XF::runApp('XF\\Pub\\App')
#15 {main}
Request state
array(4) {
  ["url"] => string(61) "***/watch"
  ["referrer"] => string(88) "***"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(6) {
    ["_xfToken"] => string(8) "********"
    ["notify_on"] => string(7) "comment"
    ["send_alert"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
    ["_xfWithData"] => string(1) "1"
    ["_xfRequestUri"] => string(62) "***"
  }
}

This seems similar to this (already fixed) issue in XF core:

 
Back
Top Bottom