• Resolved CK MacLeod

    (@ck-macleod)


    In trying to Broadcast LearnDash courses that use TinCanny Reporting modules in their lessons, I am encountering failures – typically partially successful transfers, sometimes 4 lessons transferred out of 20+, sometimes only the Lesson headings, and so on. When the broadcasts are attempted in “Rebroadcast” mode from the Courses archive or from the Broadcast > Learndash “Course broadcast” subpage. an error message appears, “NO DB ROW – PLEASE SAVE WITH VALID MODULE” or “Ajax Error – NO DB ROW.”

    If we hadn’t successfully completed many similar broadcasts in the past, over the course of several years in fact, I would have concluded that the Add-On was simply non-functional. However, I have found that if I repeatedly – upwards of 5 to 10 times – try to “Rebroadcast,” I can finally get the broadcast to complete in full.

    We are using the latest available add-on pack, on WordPress 6.9.4. I have tried normal troubleshooting – turning off all but essential plugins, switching to a vanilla WordPress theme – without solving the problem. There are no error messages in the WordPress debug log. I do not believe we are encountering PHP Memory or timeout errors: The process does not appear to time out, and we have memory and execution time set at very high values (2GB and 300 seconds). We have replicated the error at two separate, if similarly configured, installations at the same host, but on different servers.

    I have enabled Broadcast debugging, The current output file is very long, since it reflects those repeated efforts, but I would be happy to share it with you, or to perform a single attempt.

    Since we are finally achieving success, and since we do not actually use this feature very often, I wouldn’t consider this an urgent matter. That said, we are concerned that at some point in the future, the functionality may fail completely.

    • This topic was modified 1 month, 2 weeks ago by CK MacLeod.
Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Author edward_plainview

    (@edward_plainview)

    Generally, anything related to “TinCanny” has not worked well, due to how Learndash has not been network aware: course 12 on Blog A is not the same as course 12 on Blog B, and Tincanny stuff has been very locked in to specific course IDs without knowing which blog it is on.

    Ideally, the best way to solve the problem is by finding the code in the Tincanny plugin and then trying to work around it (disabling it), so that it doesn’t try to find non-existent course progress et. al.

    The best thing to do now would be to find the source of the problem:

    • Enable WP_DEBUG in order to output errors to the browser
    • Enable Broadcast debug to browser mode
    • Broadcast the course to one blog
    • Observe the massive Broadcast debug text
    • Together with the (hopefully) PHP fatal error at the end
    • And email it to me: [email protected]

    Thread Starter CK MacLeod

    (@ck-macleod)

    Thanks for the quick reply. I now see that a fatal error does eventually show up in PHP error logs, though not consistently: I’ll put it here, and also include it in an email with the complete Broadcast error log.

    [23-Apr-2026 15:51:52 UTC] PHP Fatal error: Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct(/home/ams8nwj/public_html/wp-content/uploads/sites/21/uncanny-snc/2766): Failed to open directory: No such file or directory in /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/classes/files_trait.php:42
    Stack trace: 0 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/classes/files_trait.php(42): RecursiveDirectoryIterator->__construct() 1 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/learndash/LearnDash.php(503): threewp_broadcast\premium_pack\learndash\LearnDash::copy_recursive() 2 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(341): threewp_broadcast\premium_pack\learndash\LearnDash->threewp_broadcast_parse_content() 3 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters() 4 /home/ams8nwj/public_html/wp-includes/plugin.php(522): WP_Hook->do_action() 5 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/vendor/plainview/sdk/wordpress/actions/action.php(58): do_action() 6 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/traits/broadcasting.php(620): plainview\sdk_broadcast\wordpress\actions\action->execute() 7 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/traits/broadcasting.php(948): threewp_broadcast\ThreeWP_Broadcast->broadcast_post() 8 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(341): threewp_broadcast\ThreeWP_Broadcast->threewp_broadcast_broadcast_post() 9 /home/ams8nwj/public_html/wp-includes/plugin.php(205): WP_Hook->apply_filters() 10 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/api/api.php(84): apply_filters() 11 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/api/api.php(106): threewp_broadcast\api\api->broadcast_children() 12 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/broadcasting_data/Equivalent_Posts.php(109): threewp_broadcast\api\api->broadcast_children_with_post() 13 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/learndash/LearnDash.php(1840): threewp_broadcast\broadcasting_data\Equivalent_Posts->get_or_broadcast() 14 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/learndash/LearnDash.php(1844): threewp_broadcast\premium_pack\learndash\LearnDash->restore_course_steps() 15 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/learndash/LearnDash.php(1844): threewp_broadcast\premium_pack\learndash\LearnDash->restore_course_steps() 16 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/learndash/LearnDash.php(703): threewp_broadcast\premium_pack\learndash\LearnDash->restore_course_steps() 17 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/learndash/LearnDash.php(368): threewp_broadcast\premium_pack\learndash\LearnDash->maybe_restore_course() 18 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(341): threewp_broadcast\premium_pack\learndash\LearnDash->threewp_broadcast_broadcasting_before_restore_current_blog() 19 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters() 20 /home/ams8nwj/public_html/wp-includes/plugin.php(522): WP_Hook->do_action() 21 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/vendor/plainview/sdk/wordpress/actions/action.php(58): do_action() 22 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/traits/broadcasting.php(764): plainview\sdk_broadcast\wordpress\actions\action->execute() 23 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/traits/broadcasting.php(948): threewp_broadcast\ThreeWP_Broadcast->broadcast_post() 24 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(341): threewp_broadcast\ThreeWP_Broadcast->threewp_broadcast_broadcast_post() 25 /home/ams8nwj/public_html/wp-includes/plugin.php(205): WP_Hook->apply_filters() 26 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/rebroadcast/Rebroadcast.php(40): apply_filters() 27 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(341): threewp_broadcast\premium_pack\rebroadcast\Rebroadcast->threewp_broadcast_post_action() 28 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters() 29 /home/ams8nwj/public_html/wp-includes/plugin.php(522): WP_Hook->do_action() 30 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/vendor/plainview/sdk/wordpress/actions/action.php(58): do_action() 31 /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast/src/traits/post_actions.php(607): plainview\sdk_broadcast\wordpress\actions\action->execute() 32 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(341): threewp_broadcast\ThreeWP_Broadcast->wp_ajax_broadcast_post_bulk_action() 33 /home/ams8nwj/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters() 34 /home/ams8nwj/public_html/wp-includes/plugin.php(522): WP_Hook->do_action() 35 /home/ams8nwj/public_html/wp-admin/admin-ajax.php(192): do_action() 36 {main}

    thrown in /home/ams8nwj/public_html/wp-content/plugins/threewp-broadcast-premium-pack/src/classes/files_trait.php on line 42

    Plugin Author edward_plainview

    (@edward_plainview)

    Problem was some custom code that was interfering with Broadcast.

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

You must be logged in to reply to this topic.