Skip to content
DataMiner DoJo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Blog
  • Questions
  • Learning
    • E-learning Courses
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • Tutorials
    • Video Library
    • Books We Like
    • >> Go to DataMiner Docs
  • Expert Center
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Markets & Industries
      • Media production
      • Government & defense
      • Content distribution
      • Service providers
      • Partners
      • OSS/BSS
    • DataMiner Insights
      • Security
      • Integration Studio
      • System Architecture
      • DataMiner Releases & Updates
      • DataMiner Apps
    • Agile
      • Agile Webspace
      • Everything Agile
        • The Agile Manifesto
        • Best Practices
        • Retro Recipes
      • Methodologies
        • The Scrum Framework
        • Kanban
        • Extreme Programming
      • Roles
        • The Product Owner
        • The Agile Coach
        • The Quality & UX Coach (QX)
    • DataMiner DevOps Professional Program
  • Downloads
  • More
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
      • General Inquiries
      • DataMiner DevOps Support
      • Commercial Requests
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

Protocol: HTTP Response “malformed UTF-8 character in JSON string”

Solved1.18K views31st May 2022HTTP protocol
1
Robin Becker [DevOps Advocate]1.40K 31st May 2022 0 Comments

I'm trying to get a protocol working with one of our devices, communicating over HTTP.

When calling the device API with an external tool (Postman or similar) it works without problem.

However when the dataminer protocol sends an HTTP request and a field value contains a localized character (in our case: å, ä or ö), the device responds with a 422:

"...malformed UTF-8 character in JSON string, at character offset 83 (before "\x{fffd}n 32","recor...")..."

Seeing as this problem does not arise when using an external tool I'm thinking this problem might be on the dataminer side. I do not add any Content-Type header so according to https://docs.dataminer.services/develop/schemadoc/Protocol/Protocol.HTTP.Session.Connection.Request.Headers.Header.html the request should be converted to UTF-8.

What am I missing?

Robin Becker [DevOps Advocate] Selected answer as best 31st May 2022

1 Answer

  • Active
  • Voted
  • Newest
  • Oldest
4
Laurens Moutton [SLC] [DevOps Enabler]8.70K Posted 31st May 2022 3 Comments

Hi,

Is the protocol set as type with unicode option? See help. When this is not set as unicode then parameter values will still contain ascii characters.

Do note that changing a protocol to unicode is considered as a braking change so you might want to verify saved parameter values when using an existing element.

Regards,

Robin Becker [DevOps Advocate] Posted new comment 31st May 2022
Robin Becker [DevOps Advocate] commented 31st May 2022

This does indeed seem to solve it (although with some small quirks).
However the element seem to have saved a few rows in some of the tables with old indexes (now converted to some strange characters) keeping their display name but with the rest of the params as Not initialized. Is there a way to fix this without deleting and recreating the element?

Getting multiple log entries on startup like:
CParameter::ReadColumnData|ERR|-1|Table [65049/__Interfaces] Data not loaded, could not find primary key. Detected invalid data in DB for column pid: 65051, chIndex: 100001 and chValue: 4F007500740070007500740020003000.

Laurens Moutton [SLC] [DevOps Enabler] commented 31st May 2022

That is because the protocol used to be an ascii by default, which saved the parameter values as ascii in the database. Now this has been changed into a unicode type, but the old saved values are still ascii which is now read out as strange characters. That is why changing the type to unicode is considered as a braking change for existing elements. The most easy thing to do is to create a new element and delete the old one. If you want to keep on using the existing element then you would have to log on into the database and delete the parameter data that is saved for that element, but that is not simple if you don’t have database knowledge. A step in between could be to temporary add a clear action to the protocol to be executed (once) on the table parameters to have the content deleted but that will only work for loaded data, the log lines with “Data not loaded” are still going to appear in the logging when (re)starting the element.

Robin Becker [DevOps Advocate] commented 31st May 2022

Alright, recreating the element it is. Thanks for the support Laurens!

You are viewing 1 out of 1 answers, click here to view all answers.
Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas

Recent questions

Correlation Engine: “Test rule” doesn’t result in a hit, despite functional rule 1 Answer | 3 Votes
When using the Setter = true attribute, will the copy action always be executed first? 1 Answer | 2 Votes
Multiple Set on Table parameters for DVE’s 1 Answer | 2 Votes

Question Tags

adl2099 (115) alarm (62) Alarm Console (82) alarms (100) alarm template (83) Automation (223) automation scipt (111) Automation script (167) backup (71) Cassandra (180) Connector (109) Correlation (69) Correlation rule (52) Cube (150) Dashboard (194) Dashboards (188) database (83) DataMiner Cube (57) DIS (81) DMS (71) DOM (140) driver (65) DVE (56) Elastic (83) Elasticsearch (115) elements (80) Failover (104) GQI (159) HTTP (76) IDP (74) LCA (152) low code app (166) low code apps (93) lowcodeapps (75) MySQL (53) protocol (203) QAction (83) security (88) SNMP (86) SRM (337) table (54) trending (87) upgrade (62) Visio (539) Visual Overview (345)
Privacy Policy • Terms & Conditions • Contact

© 2025 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin