• Resolved seamuslee

    (@seamuslee)


    Recently on a client site I have been having an error occur when wp cron event run is run where the system tries to run a delete from <wpdbprefix>_shepherd_tec_task_logs table but that table doesn’t exist in our installation. We have both the Events Tickets and Events Calendar installed.

    I tried looking around for code to create the table but I couldn’t see anything specific. Are you able to provide info on either how I should create the table or on what I should do here?

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Support Darian

    (@d0153)

    Hi @seamuslee

    Thank you so much for reaching out and letting us know about this issue. I want to assure you that we already have an internal bug ticket open for this specific problem (Reference: TCMN-193), and I’ve added your case to our report.

    We prioritize bugs by taking into consideration the number of users impacted as well as how the bug impacts one’s ability to run an event. I don’t have a specific timeline as to when this issue will be resolved, but trust that our team is aware. Our team communicates updates and bug fixes in our newsletter and via our changelog. We’ll also update this thread once the fix is out.

    In the meantime, you might find it helpful to downgrade to a previous version of The Events Calendar v6.14.2. These steps have helped some users as a temporary workaround.

    I’m happy to help if any other questions are coming up around this topic, otherwise I’ll go ahead and close this ticket.

    Thanks again for reporting this issue and for using The Events Calendar! Have a great day.

    Internal Bug Ticket Reference: TCMN-193

    Plugin Support Darian

    (@d0153)

    Hi there,

    It looks like this thread has been inactive for a while, so I’ll go ahead and close it for now. If you have any other questions or concerns, please don’t hesitate to reopen this thread or start a new one.

    sipium

    (@sipium)

    Because the table doesn’t exist and that causes an exception to be thrown, the next very important line doesn’t get run to clean out the <wpdbprefix>_shepherd_tec_tasks table. In TEC 6.15.11 the crucial line is #144 in <common/vendor/vendor-prefixed/stellarwp/shepherd/src/Provider.php>. I prefixed this line with “if (false) ” as a *very* temporary fix. I know it will be overwritten by the next TEC update. But in the meantime, it is a better workaround than rolling back to an older version.

    Plugin Support Darian

    (@d0153)

    Hi @sipium

    Thanks for sharing the workaround you’re currently using.

    If you haven’t already, please try adding the following snippet to see if it resolves the issue on your end:

    add_action( 'tribe_common_loaded', function () { 
    remove_action( 'init', [ tribe( TEC\Common\StellarWP\Shepherd\Regulator::class ), 'schedule_cleanup_task' ], 20 );
    } );

    If you’re not familiar with coding, you can use the Code Snippets plugin, which removes the need to add custom snippets to your theme’s functions.php file.

    sipium

    (@sipium)

    I hope you’ll understand, I am reluctant to add the code snippet you suggested. This is because I think it is a good idea to continue deleting obsolete task and task-log records, but your code snippet looks like it would stop that cleanup process.

    Your suggestion led me to look closely at the code referenced. I can see that the Herding class decides which table holds the task log records on the basis of the configured Logger class. If the Logger is ActionScheduler_DB_Logger, then it will go looking for obsolete log records to delete from the actionscheduler_logs table. Only if the configured Logger is DB_Logger will it try to delete records from the shepherd_tec_task_logs table. In short, attempts to delete from the shepherd_tec_task_logs table are conditional. I expect the creation of that table will also be conditional. Therefore, I think it would be wise if the code I disabled (using a very simple “if (false) …” condition) was made more intelligently conditional like the code in the Herding class. I might try this myself.

    Am I right in guessing that the StellarWP Shepherd code is bundled 3rd-party code that you have no influence over? Which would mean that you are relying on StellarWP to fix bugs in their own code on which TEC depends?

    Happy to discuss further in more technical detail if necessary.

    Plugin Support Darian

    (@d0153)

    Hi @sipium

    Thanks so much for your response and for sharing what you’ve found. You’re absolutely right — Shepherd is a third-party library, so we don’t have direct control over it. That said, rest assured that our team is already actively addressing the issue related to the Shepherd library, and we expect a fix to be released soon. We truly appreciate your patience, and we’re here if you need anything in the meantime!

Viewing 6 replies - 1 through 6 (of 6 total)

The topic ‘Error on WP Cron run deleting task logs’ is closed to new replies.