EE compatibility updates:

  • Publisher is EE5 compatible, but it does not currently support the Fluid field.

ExpressionEngine.com licenses:

  • If you purchased an add-on from expressionengine.com, be sure to visit boldminded.com/claim to add the license to your account here on boldminded.com.

Ticket: Huge number of errors on save

Status Resolved
Add-on / Version Publisher Lite 3.1.6
Severity
EE Version 5.3.2

James Brown

Aug 23, 2020

I just had an odd thing happen that I wanted to report. I was publishing changes to an existing entry. On clicking Save the browser was just hanging for a long time. Eventually I got a page with a warning error that appeared 69,285 times on that single page:

Warning
unlink(user/cache/anomali/publisher/lang/1/status/open/get_translated_url/1/1/74e7cf87348ecf3b0a36c9b91be6ed5d): No such file or directory
ee/legacy/helpers/file_helper.php, line 111
Severity: E_WARNING

Followed by:

Warning
Cannot modify header information - headers already sent by (output started at ee/legacy/core/Exceptions.php:120)
ee/EllisLab/ExpressionEngine/Boot/boot.common.php, line 493
Severity: E_WARNING

Exception Caught
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '4851-1-open' for key 'pub_key':
INSERT INTO `exp_publisher_data_field_48` (`entry_id`, `lang_id`, `status`, `is_fluid`, `field_id_48`) VALUES (4851, 1, 'open', 0, '')
ee/legacy/database/drivers/mysqli/mysqli_connection.php:117

Stack Trace: Please include when reporting this error
#0 ee/legacy/database/drivers/mysqli/mysqli_driver.php(112): CI_DB_mysqli_connection->query('INSERT INTO `ex…')
#1 ee/legacy/database/DB_driver.php(270): CI_DB_mysqli_driver->_execute('INSERT INTO `ex…')
#2 ee/legacy/database/DB_driver.php(180): CI_DB_driver->simple_query('INSERT INTO `ex…')
#3 ee/legacy/database/DB_active_rec.php(1371): CI_DB_driver->query('INSERT INTO `ex…')
#4 user/addons/publisher/Model/EntryTranslation.php(154): CI_DB_active_record->insert('publisher_data_…', Array)
#5 user/addons/publisher/Model/EntryTranslation.php(103): BoldMinded\Publisher\Model\EntryTranslation->updateCustomFields(Array, Array)
#6 user/addons/publisher/Service/Entry/Entry.php(314): BoldMinded\Publisher\Model\EntryTranslation->save()
#7 user/addons/publisher/ext.publisher.php(560): BoldMinded\Publisher\Service\Entry\Entry->save(Object(EllisLab\ExpressionEngine\Model\Channel\ChannelEntry), Array)
#8 ee/legacy/libraries/Extensions.php(222): Publisher_ext->after_channel_entry_save(Object(EllisLab\ExpressionEngine\Model\Channel\ChannelEntry), Array)
#9 ee/legacy/libraries/Extensions.php(117): EE_Extensions->call_class('Publisher_ext', 'after_channel_e…', Array, Array)
#10 [internal function]: EE_Extensions->call('after_channel_e…', Object(EllisLab\ExpressionEngine\Model\Channel\ChannelEntry), Array)
#11 ee/EllisLab/ExpressionEngine/Service/Model/Model.php(665): call_user_func_array(Array, Array)
#12 [internal function]: EllisLab\ExpressionEngine\Service\Model\Model->EllisLab\ExpressionEngine\Service\Model\{closure}('after_channel_e…', Object(EllisLab\ExpressionEngine\Model\Channel\ChannelEntry), Array)
#13 ee/EllisLab/ExpressionEngine/Service/Model/Model.php(616): call_user_func_array(Object(Closure), Array)
#14 [internal function]: EllisLab\ExpressionEngine\Service\Model\Model->EllisLab\ExpressionEngine\Service\Model\{closure}()
#15 ee/EllisLab/ExpressionEngine/Service/Event/Emitter.php(141): call_user_func_array(Object(Closure), Array)
#16 [internal function]: EllisLab\ExpressionEngine\Service\Event\Emitter->emit('afterSave')
#17 ee/EllisLab/ExpressionEngine/Library/Data/Entity.php(654): call_user_func_array(Array, Array)
#18 [internal function]: EllisLab\ExpressionEngine\Library\Data\Entity->emit('afterSave')
#19 ee/EllisLab/ExpressionEngine/Service/Model/Model.php(858): call_user_func_array('parent::emit', Array)
#20 ee/EllisLab/ExpressionEngine/Service/Model/Query/Update.php(51): EllisLab\ExpressionEngine\Service\Model\Model->emit('afterSave')
#21 ee/EllisLab/ExpressionEngine/Service/Model/DataStore.php(282): EllisLab\ExpressionEngine\Service\Model\Query\Update->run()
#22 ee/EllisLab/ExpressionEngine/Service/Model/DataStore.php(248): EllisLab\ExpressionEngine\Service\Model\DataStore->runQuery('Update', Object(EllisLab\ExpressionEngine\Service\Model\Query\Builder))
#23 ee/EllisLab/ExpressionEngine/Service/Model/Query/Builder.php(71): EllisLab\ExpressionEngine\Service\Model\DataStore->updateQuery(Object(EllisLab\ExpressionEngine\Service\Model\Query\Builder))
#24 ee/EllisLab/ExpressionEngine/Service/Model/Model.php(366): EllisLab\ExpressionEngine\Service\Model\Query\Builder->update()
#25 ee/EllisLab/ExpressionEngine/Model/Content/ContentModel.php(225): EllisLab\ExpressionEngine\Service\Model\Model->save()
#26 ee/EllisLab/ExpressionEngine/Controller/Publish/AbstractPublish.php(376): EllisLab\ExpressionEngine\Model\Content\ContentModel->save()
#27 ee/EllisLab/ExpressionEngine/Controller/Publish/Edit.php(527): EllisLab\ExpressionEngine\Controller\Publish\AbstractPublish->saveEntryAndRedirect(Object(EllisLab\ExpressionEngine\Model\Channel\ChannelEntry))
#28 [internal function]: EllisLab\ExpressionEngine\Controller\Publish\Edit->entry('4851')
#29 ee/EllisLab/ExpressionEngine/Core/Core.php(241): call_user_func_array(Array, Array)
#30 ee/EllisLab/ExpressionEngine/Core/Core.php(110): EllisLab\ExpressionEngine\Core\Core->runController(Array)
#31 ee/EllisLab/ExpressionEngine/Boot/boot.php(151): EllisLab\ExpressionEngine\Core\Core->run(Object(EllisLab\ExpressionEngine\Core\Request))
#32 threat-admin.php(153): require_once('...')
#32 threat-admin.php(153): require_once('...')

The first huge set of errors is odd since I have Publisher Lite which doesn’t have any kind of translation. I did try a subsequent save after my browser had a chance to settle down and nothing came up. But just figured I’d at least report it.

 

#1

BoldMinded (Brian)

Aug 23, 2020

That’s actually just 2 errors. The first “unlink” error probably isn’t necessarily caused by Publisher. When you save an entry Publisher issues the cache clear command to EE (the same command that happens when you go to Developer > Utilities > Clear Cache). So, not sure why that is happening.

The other error is because it is trying to insert a row into the database that already exists. Based on these two errors, I’m inclined to think that EE tried to save the same entry twice… like the same POST command was issued twice. I haven’t seen similar reports like this… usually when I don’t have duplicate reports for something as simple as saving an entry, then it usually means something is awry in the customer’s environment. What did you do before this error occurred? Did you click a save button twice? Can you describe what led up to this happening?

Also, you might see references to translations even in Publisher Lite… they’re same codebase. Lite is just the full version with a few features disabled. The same stuff happens when saving a draft or a translation. All your entries are technically translations… all the language stuff is just not made visible when using Publisher Lite.

#2

James Brown

Aug 24, 2020

To be clear on the first point, it actually was 69,285 errors for that first error. I just put in one example. It was the same error, but referencing a different file for each one. I put in a screenshot to show that a bit more. Obviously can’t show the whole thing.

As far as I know it was just a standard: open existing published entry, make changes, select Save as Published from the dropdown, and click Save. It’s always possible I accidentally clicked twice. Although it’s not something I would have ever done intentionally.

I agree this may just be something on my end. But I at least wanted to bring it up in case it helps. Subsequent publishes have been fine.

Login to reply

For add-on support, please use the Support section. General inquries and pre-sale questions can be sent to support@boldminded.com.