Bandwidth (plugin) breaks multiple dashboard and report views in Matomo 4.x

Hello,
We installed https://plugins.matomo.org/Bandwidth but it breaks some views apparently.

We can reproduce on freshly installed Matomo 4.7.1 and Bandwidth version 4.0.1.
As soon as the plugin is disabled, the dashboard operates normally once again.

Problem occurs when querying the Database at plugins/Actions/VisitorDetails.php (building custom dimension fields) with error
Mysqli prepare error: Unknown column ‘bandwidth’ in 'field list’

The faulty query is:

SELECT
    log_link_visit_action.idvisit,
    COALESCE(log_action.type, log_action_title.type) AS type,
    log_action.name AS url,
    log_action.url_prefix,
    log_action_title.name AS pageTitle,
    log_action.idaction AS pageIdAction,
    log_link_visit_action.idpageview,
    log_link_visit_action.idlink_va,
    log_link_visit_action.server_time as serverTimePretty,
    log_link_visit_action.time_spent_ref_action as timeSpentRef,
    log_link_visit_action.idlink_va AS pageId,
    log_link_visit_action.custom_float,
    ( log_link_visit_action.time_network +
    log_link_visit_action.time_server +
    log_link_visit_action.time_transfer +
    log_link_visit_action.time_dom_completion +
    log_link_visit_action.time_dom_processing +
    log_link_visit_action.time_on_load ) AS pageLoadTime,
    log_link_visit_action.pageview_position,
    log_link_visit_action.search_cat,
    log_link_visit_action.search_count
    , log_link_visit_action.product_price as productViewPrice, log_action_productview_name.name as productViewName, log_action_productview_sku.name as productViewSku, log_action_productview_category1.name as productViewCategory1, log_action_productview_category2.name as productViewCategory2, log_action_productview_category3.name as productViewCategory3, log_action_productview_category4.name as productViewCategory4, log_action_productview_category5.name as productViewCategory5, log_action_event_category.type AS eventType, log_action_event_category.name AS eventCategory, log_action_event_action.name as eventAction, log_action_content_name.name as contentName, log_action_content_piece.name as contentPiece, log_action_content_target.name as contentTarget, log_action_content_interaction.name as contentInteraction, custom_dimension_1, custom_dimension_2, custom_dimension_3, custom_dimension_4, custom_dimension_5, bandwidth
FROM matomo_log_link_visit_action AS log_link_visit_action
    LEFT JOIN matomo_log_action AS log_action
    ON  log_link_visit_action.idaction_url = log_action.idaction
    LEFT JOIN matomo_log_action AS log_action_title
    ON  log_link_visit_action.idaction_name = log_action_title.idaction
    LEFT JOIN matomo_log_action AS log_action_productview_name
    ON  log_link_visit_action.idaction_product_name = log_action_productview_name.idaction LEFT JOIN matomo_log_action AS log_action_productview_sku
    ON  log_link_visit_action.idaction_product_sku = log_action_productview_sku.idaction LEFT JOIN matomo_log_action AS log_action_productview_category1
    ON  log_link_visit_action.idaction_product_cat = log_action_productview_category1.idaction LEFT JOIN matomo_log_action AS log_action_productview_category2
    ON  log_link_visit_action.idaction_product_cat2 = log_action_productview_category2.idaction LEFT JOIN matomo_log_action AS log_action_productview_category3
    ON  log_link_visit_action.idaction_product_cat3 = log_action_productview_category3.idaction LEFT JOIN matomo_log_action AS log_action_productview_category4
    ON  log_link_visit_action.idaction_product_cat4 = log_action_productview_category4.idaction LEFT JOIN matomo_log_action AS log_action_productview_category5
    ON  log_link_visit_action.idaction_product_cat5 = log_action_productview_category5.idaction LEFT JOIN matomo_log_action AS log_action_event_action
    ON  log_link_visit_action.idaction_event_action = log_action_event_action.idaction LEFT JOIN matomo_log_action AS log_action_event_category
    ON  log_link_visit_action.idaction_event_category = log_action_event_category.idaction LEFT JOIN matomo_log_action AS log_action_content_name
    ON  log_link_visit_action.idaction_content_name = log_action_content_name.idaction LEFT JOIN matomo_log_action AS log_action_content_piece
    ON  log_link_visit_action.idaction_content_piece = log_action_content_piece.idaction LEFT JOIN matomo_log_action AS log_action_content_target
    ON  log_link_visit_action.idaction_content_target = log_action_content_target.idaction LEFT JOIN matomo_log_action AS log_action_content_interaction
    ON  log_link_visit_action.idaction_content_interaction = log_action_content_interaction.idaction
WHERE log_link_visit_action.idvisit IN ('')
ORDER BY log_link_visit_action.idvisit, server_time ASC

Hi,

Can you check if the bandwidth column exists in the matomo_log_link_visit_action table?

Hi Lukas,
No, there are 41 columns and the last one is custom_dimension_5

It might then be a problem during the installation. Did you try uninstalling the plugin and installing it again (at which point it should create the column)

I will try on a 4.8.0 installation. I did not have the screen saying "Database Upgrade Required

Your Matomo database is out-of-date, and must be upgraded before you can continue."

After running php /var/www/html/console core:update the SQL inserting the column was properly executed.

This is an offline installation, btw.

1 Like