Matomo is storing unprintable characters in the database

We are experiencing a rather unexpected error. We are exporting the Matomo log tables in order to import them into Teradata. Basically everything is working as designed. We did however noticed one of the columns, matomo_log_action.name, containing no printable characters. For instance we found “-” to be replaced by “0xE20x960x92”. Tracing back what caused this in the export files we found that the error is present in the Matomo database. Here is a sample select from our database that shows the error:

SELECT a.name
-> FROM piwik_log_visit v
-> INNER JOIN piwik_log_link_visit_action va ON v.idvisit = va.idvisit
-> INNER JOIN piwik_log_action a ON a.idaction = va.idaction_url
-> LEFT JOIN piwik_log_conversion c ON c.idvisit = v.idvisit
-> WHERE v.idvisit = 558906438;

±--------------------------------------------------------------------------------------+
| name |
±--------------------------------------------------------------------------------------+
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor▒ondernemers |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor-ondernemers |
| https://mijnzakelijk.belastingdienst.nl/onp |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor-ondernemers |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor▒ondernemers |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor-ondernemers |
| https://mijnzakelijk.belastingdienst.nl/onp |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor-ondernemers |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor▒ondernemers |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor-ondernemers |
| https://mijnzakelijk.belastingdienst.nl/onp |
| belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor-ondernemers |
±--------------------------------------------------------------------------------------+

You may select the text “voor▒ondernemers” for inspection.

Obviously the URL belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor▒ondernemers does not exist.
Instead I checked belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor-ondernemers which works.

If I check what Matomo pixels are loaded I find our two trackers:

https://pwa001.belastingdienst.nl/piwik/piwik.php?action_name=Inloggen%20voor%20ondernemers&idsite=3&rec=1&r=161946&h=12&m=23&s=37&url=https%3A%2F%2Fwww.belastingdienst.nl%2Fwps%2Fwcm%2Fconnect%2Fnl%2Fondernemers%2Fcontent%2Finloggen-voor-ondernemers&_id=ff5f6ab71e1803c6&_idts=1599726147&_idvc=13&_idn=0&_refts=1611055345&_viewts=1611055345&_ref=https%3A%2F%2Fwww.google.com%2F&send_image=1&pdf=1&qt=0&realp=0&wma=0&dir=0&fla=0&java=0&gears=0&ag=0&cookie=1&res=1536x864&dimension3=&cvar={"1"%3A["pageType"%2C"|bld-dv-content|"]%2C"2"%3A["filterTheme"%2C"|ondernemers|"]%2C"3"%3A["pageGoal"%2C"|niet_van_toepassing|"]%2C"4"%3A["pageAction"%2C"|not-chosen|"]}&gt_ms=39&pv_id=SKcwUI&fa_pv=1&fa_fp[0][fa_vid]=dbreHP&fa_fp[0][fa_fv]=1&fa_fp[1][fa_vid]=7yBo0y&fa_fp[1][fa_fv]=1&fa_fp[2][fa_vid]=v0OoZ3&fa_fp[2][fa_fv]=1

https://awa001.acc.belastingdienst.nl/piwik/piwik.php?action_name=Inloggen%20voor%20ondernemers&idsite=3&rec=1&r=917979&h=12&m=23&s=37&url=https%3A%2F%2Fwww.belastingdienst.nl%2Fwps%2Fwcm%2Fconnect%2Fnl%2Fondernemers%2Fcontent%2Finloggen-voor-ondernemers&_id=ff5f6ab71e1803c6&_idts=1599726147&_idvc=13&_idn=0&_refts=1611055345&_viewts=1611055345&_ref=https%3A%2F%2Fwww.google.com%2F&send_image=1&pdf=1&qt=0&realp=0&wma=0&dir=0&fla=0&java=0&gears=0&ag=0&cookie=1&res=1536x864&dimension3=&cvar={"1"%3A["pageType"%2C"|bld-dv-content|"]%2C"2"%3A["filterTheme"%2C"|ondernemers|"]%2C"3"%3A["pageGoal"%2C"|niet_van_toepassing|"]%2C"4"%3A["pageAction"%2C"|not-chosen|"]}&gt_ms=39&pv_id=A8PaGu&fa_pv=1&fa_fp[0][fa_vid]=dbreHP&fa_fp[0][fa_fv]=1&fa_fp[1][fa_vid]=7yBo0y&fa_fp[1][fa_fv]=1&fa_fp[2][fa_vid]=v0OoZ3&fa_fp[2][fa_fv]=1

It seems the tracker is sending the correct request with the URL correct. From all of this I gather somewhere in the process of registering the call into the database things go wrong and the URL gets distorted.

My question now is: Have you ever seen this error before? What can we do to fix it?

While we still don’t have a lof of time to investigate, we did a few queries to establish an idea of what we are looking and and whether or not a temporal fix will help us. In fact, this is what we found:

belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/inloggen-voor?ondernemers
2021-01-14T12:06:58.000

belastingdienst.nl/wps/wcm/connect/nl/koopwoning/content/wat-aftrekken?met-verbouwingsdepot
2020-06-20T09:11:58.000

belastingdienst.nl/wps/wcm/connect/nl/koopwoning/content/wat-aftrekken?met-verbouwingsdepot)
2020-06-20T09:11:10.000

belastingdienst.nl/wps/wcm/connect/nl/koopwoning/content/wat-aftrekken?met-verbouwingsdepot)
2020-06-20T09:11:07.000

belastingdienst.nl/wps/wcm/connect/nl/koopwoning/content/wat-aftrekken?met-verbouwingsdepott)
2020-06-20T09:11:34.000

belastingdienst.nl/wps/wcm/connect/nl/ondernemers/content/coronavirus-belastingmaatregelen-om?ondernemers-te-helpen
2020-03-25T20:11:31.000

belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakelijk/btw/hoe_werkt_de_btw/voor_wie_geldt_de_btw/eigenaren-van?zonnepanelen/eigenaren_van_zonnepanelen
2020-03-30T19:15:51.000

belastingdienst.nl/wps/wcm/connect/bldcontentnl/berichten/nieuws/tijdelijke?sluiting-kinderopvang-vanwege-coronavirus
2020-03-25T19:31:48.000
2020-03-25T19:34:09.000

belastingdienst.nl/wps/wcm/connect/nl/auto-en-vervoer/content/verklaring-geen?privegebruik-auto-aanvragen-wijzigen-intrekken
2020-10-06T11:17:27.000
2020-10-06T11:18:07.000

belastingdienst.nl/wps/wcm/connect/nl/koopwoning/content/aflossingsverplichting?annuiteitenlening-berekenen
2019-08-16T07:16:20.000

belastingdienst.nl/wps/wcm/connect/nl/koopwoning/content/renteaftrek-hypotheek?lening-eigen-woning-familie-bv-buitenlandse-bank
2019-08-16T07:11:56.000

belastingdienst.nl/wps/wcm/connect/nl/auto-en-vervoer/content/hulpmiddel?motorrijtuigenbelasting-berekenen
2019-10-07T17:44:40.000

belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/internationaal/fiscale_regelingen/buitenlandse?belastingplicht/welke_gegevens_vult+u_in_uw_aangifte_in/bezittingen_box3/
2018-01-01T10:02:55.000
2018-01-01T10:03:24.000
2018-01-01T10:02:35.000

belastingdienst.nl/wps/wcm/connect/nl/belastingaangift?
2018-03-02T09:17:32.000

belastingdienst.nl/wps/wcm/connect/nl/toeslagen/content/hulpmiddel?proefberekening-toeslagen
2018-12-27T12:23:41.000
2018-12-27T18:20:13.000
2018-12-27T18:20:34.000
2018-11-28T12:21:32.000
2018-12-27T18:21:43.000
2018-12-13T09:50:56.000
2018-12-14T18:59:18.000

belastingdienst.nl/wps/wcm/connect/nl/home/ho?
2016-11-25T11:15:10.000

belastingdienst.nl/wps/wcm/connect/bldcontentnl/themaoverstijgend/rekenhulpen/toeslagen/wat?
2016-10-30T20:00:50.000

Indeed, very few occasions where this goes wrong.

Maybe this list is helpful already to look for answers. Thanks!