Exact Online datareplicatie geeft problemen: itgenoda494

Sinds gisteren lopen alle Exact Online dataloads fout. We werken met nieuwste versie (22.0.341). Deze melding krijgen we terug in logfile:

2022-09-12 10:05:26.893 Error itgencun016: Error itgenoda494: A connection to the database XX.nl\eolnl-data-replicator could not be established.

The data container with alias ‘eol’ could not be opened on provider ‘ExactOnlineAll’.

An obsoleted refresh token can not be used on Exact Online. This occurs when an Exact Online user is associated twice with the same OAuth app.

The remote server returned an error: (400) Bad Request.
Please generate a new refresh token and make sure to keep the refresh token chain intact.

Enig idee wat oorzaak is?

Mogelijkerwijs wordt in deze database gewerkt met de Code Grant Flow vanuit Invantive Data Hub.

Controleer of de Code Grant Flow gebruikt wordt. De Code Grant Flow is herkenbaar aan het voorkomen “refresh-token” in het settings*.xml bestand. Zo ja, dan is advies om voor Invantive Data Hub met Exact Online te werken met een TOTP-verificatiecode en gebruikersnaam en wachtwoord.

Controleer ook of niet per abuis dezelfde job meerdere keren gelijktijdig draait. Zo ja, gelieve de job dan maximaal één keer gelijktijdig te draaien.

Mochten beiden antwoorden “nee” zijn, gelieve dan (geanonimiseerd) de inhoud van het settings*.xml-bestand toe te voegen in een antwoord.

Meer achtergrondinformatie over itgenoda494 is te vinden in:

We gebruiken al TOTP en username/password.

Zelfde job draait niet tegelijk.

Settings*.xml-bestand kan ik hier niet neerzetten, gaat niet goed met formatting. Ik heb deze zojuist gemaild. Maar werkt al maanden voor tientallen klanten goed. Waarom zou dit ineens iets veroorzaken? Komt bij mij over als terugkaatsen van bal.

Het settings*.xml-bestand heeft globaal deze inhoud:

<?xml version="1.0" encoding="utf-8"?>
<settings version="5">
  <group name="eo.nl">
    <connection name="eolnl-data-replicator" authentication="Application"
     dataCacheConnectionString="provider=SqlServer;beta-store-facts-on-disk=false;connectionString={Server=server;Database=eo;User Id=sqlusr;Password=sqlpwd;Encrypt=false}"
    >
      <database
       provider="ExactOnlineAll"
       userLogonCodeMode="Hidden"
       passwordMode="Hidden"
       alias="eol"
       defaultUserLogonCode="eoluser"
       defaultPassword="eolpassword"
       connectionString="api-url=https://start.exactonline.nl;api-client-id=id;api-redirect-url=https://exactonlineclientredirect.invantive.com;totp-secret=Z...Z"
      />
  </group>
</settings>

De instellingen gebruiken dus inderdaad de Implicit Grant Flow bij het aanmelden. Het probleem kan dan eventueel veroorzaakt zijn door een oud refresh token dat bewaard is in Invantive Keychain, maar die hoort automatisch vervangen te worden bij het opvragen van een nieuwe.

Exact geef zelf geen openheid welke wijzigingen in productie genomen worden. Sinds 5 september zijn er meerdere soorten storingen die breed optreden. De indruk bestaat dat men ASP.NET vervangen heeft door ASP.NET MVC of ASP.NET Core.

Het probleem met itgenoda494 is de afgelopen vier dagen overwegend op deze omgeving opgetreden. Het is 2x opgetreden verspreid over twee andere omgevingen op Exact Online.

Enige resterende oorzaak die te binnenschiet zou dan gevolgschade van het probleem kunnen zijn in het aanmeldscherm:

Advies is om de synchronisatie op dit moment met de hand in het Query Tool te draaien. De eerstvolgende prioriteit is vooraleer het toevoegen van een workaround voor de bug in het Exact Online aanmeldscherm. Mocht probleem daarna nog optreden, dan zal dit punt verder geanalyseerd worden.

Of een oud refresh token in Invantive Keychain een rol speelt kan getest worden door:

  • maak een kopie van het settings*.xml-bestand als settings-test.xml.
  • pas settings-test.xml aan door de name van de group en connection lichtjes aan te passen.
  • pas in de aanroep van Invantive Data Replicator de naam van de database (GROUP\NAAM) identiek aan te passen
  • draai de job nogmaals

Indien de fout dan niet meer optreedt, dan betrof het een oud en vervallen refresh token dat in de Keychain terechtgekomen was, mogelijk door een glitch vanwege de aanmeldproblemen op Exact Online.

Indien de fout nog steeds optreed met de nieuwe volledige databasenaam, dan is er een andere oorzaak.

Voor 30 klanten elke nacht alles handmatig in de Query Tool draaien. Onbegonnen werk en dus géén oplossing. Resultaat is dat nu tientallen klanten geen data verversing hebben.

2 berichten zijn gesplitst naar een nieuw topic: Fout itgenclr006: Externe fout in Invantive Data Hub. Cannot access a disposed object

De uiteindelijke oorzaak bleek te zijn dat in de nieuwe release een andere (eveneens geldige) settings*.xml bestand gebruikt werd. Hierin werd nog gebruik gemaakt van een refresh token. Na verwijdering van het oude settings*.xml-bestand lukte het aanmelden.

De melding met code itgenlom042 met de gebruikte settings*.xml-bestandsnaam wordt naar blijkt onder release 22.0 niet naar het logbestand geschreven. In recente BETA-releases en de volgende major productierelease zal dat wel het geval zijn.