Itgenclr078: Newtonsoft.Json.JsonReaderException / zorgen stabiliteit Exact Online

We krijgen weer een (voor ons) vage foutmelding bij een dataload vanuit Exact Online. Draaide dagen achter elkaar zonder problemen, en geeft nu onderstaande error.

2021-05-07 08:19:01.210 Error itgencun016: Error itgenclr078: External error in Invantive Data Hub.

Unterminated string. Expected delimiter: ". Path 'Data[322842].YourRef', line 1, position 499927815.
2021-05-07 08:19:03.291 Error itgenclr078: Newtonsoft.Json.JsonReaderException

Idee waar dit naar verwijst, hoe op te lossen, en hoe te voorkomen?

Exact Online geeft op de REST API data streaming terug, ook al werkt men met pagina’s. Streaming betekent dat de HTTP status 200 OK al teruggegeven wordt, voordat de Exact Online API server bij de database alle data voor de pagina opgehaald heeft. Echter, indien blijkt dat de data uit de database corrupt is, dan zal de Exact Online API server een foutmelding teruggeven in de streaming data.

De HTTP status blijft echter 200 en kan niet meer gewijzigd worden in 4xx of 5xx. Bij het uitpakken van de data in JSON-formaat constateert Invantive SQL dat de teruggegeven data corrupt is. Vaak is dan een error zichtbaar in de JSON-data vanuit Exact Online. Soms wordt de corrupte data zelfs verwerkt in de verdere keten, omdat het toevallig net past binnen het JSON formaat; dit komt echter uitermate zelden voor.

De Exact Online API heeft geen goede logging voor partners en eindgebruikers om de problemen op te vragen zoals Invantive Cloud dat kent met Systeemberichten of Invantive Bridge Online via monitoring of e-mails. Geconstateerde problemen worden zelden of pas na lange tijd opgelost in Exact zelf, dus vanzelf weggaan doet het meestal niet.

Vergelijkbare problemen met errors bij streaming data komen ook voor bij Invantive Bridge Online. In de Bridge Online monitoring en Systeemberichten verschijnen deze errors wel, terwijl bijvoorbeeld vanuit Power BI alleen een vergelijkbare vage foutmelding getoond wordt. Vanuit Bridge Online wordt ook een e-mail gestuurd bij een datafout omdat de meeste startende gebruikers nog niet zo goed hun weg in Invantive Cloud kennen.

De enige praktische manier om er enigszins achter te komen is om native call logging aan te zetten en de native call log te doorzoeken zoals beschreven in Collect Native Platform Call Data. Meestal bevat 1 van de laatste logs de echte foutmelding. Het is het overwegen waard om de laatste in- en uitgaande call logs bij Exact Online API support in te dienen. Het oplossen kan echter geruime tijd duren. Eerlijkheid gebiedt te zeggen dat we vanuit Invantive hier geen tijd in willen steken aangezien het probleem ook met andere apps dan Invantive SQL optreedt en Exact zelden oplossingen realiseert binnen een acceptabele termijn van zeg een maand. Soortgelijke problemen van datacorruptie volgens de metadata gelden voor meer cloudplatformen met vergelijkbare problematische doorlooptijden.

Hallo Guido,

Bedankt voor je uitgebreide uitleg. Ik moet eerlijk zeggen dat veel van de uitleg mijn (technische) kennis te boven gaat.

Ik moet eerlijk zeggen dat ik me ernstig zorgen begin te maken over de betrouwbaarheid/continuïteit van de tooling / onderliggende procedures etc. Wij hebben inmiddels tientallen klanten die vertrouwen op dagelijkse live-data. De realiteit is dat er dagelijks weer nieuwe, onbekende, vage foutmeldingen komen waardoor de omgeving niet goed draait en we weer aan klanten moeten uitleggen waarom hun data niet ververst is.

Ik begrijp goed dat het technische verhaal hierachter zeer complex is, en dat de foutmeldingen altijd een reden hebben, maar het begint een onwerkbare situatie te worden. Het is voor mij (en voor klanten) moeilijk te begrijpen dat een dataload 4 dagen achter elkaar goed draait, en dag 5 met een vage foutmelding komt.

Eerlijkheid gebied te zeggen dat de opmerking “we gaan hier vanuit Invantive geen tijd in steken” mij ook grote zorgen baart: ik vertrouw er namelijk op dat het product dat we aanschaffen bij Invantive wel doet waarvoor we het hebben aangeschaft: het (betrouwbaar/continu) laden van data uit verschillende bronsystemen.

Commercieel is het voor ons momenteel echt een probleem. Klanten zijn ontevreden omdat het elke ochtend weer spannend is of alles heeft gedraaid. Wij hebben er inmiddels een dagtaak aan om te kijken waarom omgeving X, Y en Z nu weer niet hebben gedraaid en oplossingen zijn soms niet eens mogelijk.

Als ik kijk naar Loket: dat kunnen we nu niet verkopen omdat het laden van de verloonstaat veel te lang duurt (wordt dan aangegeven dat we het maar met Loket moeten regelen)

Als ik kijk naar EOL: dat kunnen we nu niet verkopen omdat de dataload gewoon nooit stabiel is.

Dit begint inmiddels een groot (commercieel) probleem te worden omdat de Invantive producten niet doen waarvoor we ze aanschaffen.

Laat ik duidelijk zijn de relatie met Invantive super goed is, ik heel tevreden ben met de service/support en ik Guido qua expertise en kennis op een voetstuk heb staan. Ik vraag me alleen af op welke manier we dit toekomstbestendig kunnen gaan maken.

Gr, Mike

Bedankt voor delen van je mening.

In totaliteit worden de Invantive producten voor circa 20.000 bedrijven gebruikt, waarvan een groot deel op Exact Online. Ik herken de problemen die je beschrijft bij een deel van de gebruikers. Ook van andere partners komen vergelijkbare berichten door.

Sinds einde vorig jaar is de ondersteuning vanuit support bij Exact Online merkbaar slechter. Naast reductie in beschikbare kennis en capaciteit speelt het onaangekondigd afsluiten van administraties, hetgeen op zich in noodgevallen te rechtvaardigen kan zijn, maar ook zonder terugkoppeling achteraf. In een gesprek tussen de meest intensieve gebruikende partners met Exact Online enkele dagen daarvoor is dit onderwerp niet besproken geweest en is expliciet afgesproken dat er geen breaking changes of changes op korte termijn zouden zijn tot juli 2021. Er is toendertijd alleen gesproken over wijzigingen die per 1 juli zouden ingaan. Het afsluiten gebeurde vooral bij onze partners, die niet allemaal dezelfde optimalisaties aan hadden staan en de meest veeleisende gebruikers herbergen met eveneens de hoogste maandelijkse omzetten qua Exact abonnementen.

De problematiek verergerde zich verder door de introductie van onaangekondigde breaking changes op de REST API’s. Ook dit speelde cq. speelt voornamelijk bij de wederverkopers van Invantive; daar draaien de verreweg grootste Exact Online omgevingen met veel transacties en gebruikers omdat grote Exact omgevingen vaak gepaard gaan met relatief veel consultancybehoefte.

De afgelopen jaren is helaas niet merkbaar gewerkt aan verbetering van de betrouwbaarheid van het API platform. Initiatieven zijn wel gestart, maar niet tot wasdom gekomen, maar dat is een algemeen probleem: het oplossen van technical debt en stabiliteitsverbeteringen krijgen in de meeste branches maar weinig budget toegekend. In het NRC stond hierover gisteren nog een lezenswaardig verhaal over reductie van energiegebruik in de industrie, zie https://www.nrc.nl/nieuws/2021/05/06/bedrijven-zien-meer-in-nieuwe-technologie-dan-in-isolatie-a4042670.

We maken ons bij Invantive wel serieuze zorgen over de stabiliteit per 1 juli als er op een andere manier tegen fouten bij de interactie met de API’s aangekeken zou worden. We gaan er van uit dat deze nieuwe manier van tegen API-fouten aankijken niet live zal gaan per 1 juli 2021 of anders kort na livegang teruggedraaid of functioneel aangepast zal worden. Meer informatie hierover is te lezen op Impact Exact Online API aanpassingen 1 juli 2021.

De nieuwe (lagere) rate limits maken we ons geen zorgen over; Invantive SQL ondersteunt alle beschikbare opties. Enige risico zit er in dat gebruikers niet tijdig de beschikbare opties inzetten. Op dit moment zien we dat gebruikers vrij vlot overstappen op de nieuwe beschikbare opties en per 1 juli zijn door de rate limits weinig problemen te verwachten. Een groot deel van de gebruikers draait inmiddels op Invantive Cloud, waardoor de time-to-market van nieuwe performance opties ook teruggebracht is naar enkele weken doorlooptijd voor grote aantallen gebruikers.

Doordat we vanuit Exact Online support de afgelopen maanden weinig oplossingsgerichte ondersteuning hebben ervaren wordt er vanuit Invantive geen tijd meer gestoken in een aantal problemen. We zijn over de jaren heen naar verluidt een van de partners die de meeste bugs en risico’s ontdekken en melden, maar het is alleen zinvol om dit te doen als er ook verbeteringen komen en een dialoog plaatsvindt.

De bal hiervoor ligt momenteel in onze perceptie bij Exact Online support. Gezien personele mutaties zal het mogelijk nog wel enige tijd duren tot het partnerkanaal beter bediend wordt; denk aan na de zomer. In de praktijk zien we dergelijke golfbewegingen in stabiliteit van Exact Online ook vaker; grofweg is er elke 2 jaar een dieptepunt en daarna ook weer een hoogtepunt. Al met al schaalt Exact Online inmiddels vele malen beter dan 10 jaar geleden. Grootste aanhoudende probleem is zoals gezegd de betrouwbaarheid van het API platform.

Commercieel gezien kunnen we alleen aanraden om producten op Exact Online te verkopen die voldoende consultancy-omzet genereren. Veel apps in het app center draaien op een dergelijk verdienmodel; men hanteert een lage prijs en levert relatief veel bijkomende producten. Consultants adviseren vaker apps waar men ervaring mee heeft en/of een kickbackfee over ontvangt. Vooral Nederlandse bedrijven selecteren vaak bij inkoop op de prijs voor het eerste onderdeel en niet op Total Cost of Ownership.

Dit is niet het marktmodel van Invantive; Invantive focust voor klanten die rechtstreeks bediend worden op weinig tot geen consultancy omzet. Het partnerkanaal kan voor gebruikers waar daar behoefte aan is consultancydiensten leveren. Zo kunnen gebruikers kiezen voor een Invantive partner als ze consultancy nodig hebben en rechtstreeks inkopen bij Invantive als ze zelfvoorzienend zijn.

Daarnaast raden we aan om - ook al is er geen partnermanager meer bij Exact Online - toch contact te zoeken met Exact en de problematiek voor te leggen. De procedureel juiste contactpersonen zijn bij ons niet bekend.

Voor Loket verwacht ik dat het performance issue voor de verloning wel op redelijk korte termijn opgelost zal zijn. Hetzij door de Invantive optimizer te verbeteren, dan wel in onderling overleg met Loket. Ten opzichte van Exact biedt Loket als bijkomend voordeel dat de kwaliteiten van de SQL engine uniek zijn op dat cloudplatform en Invantive SQL marktleider is.