Itgenoda221 op Loket: Use of the code grant flow with a refresh token requires presence of a client ID

Na upgrade nieuwe versie is dit de foutmelding die we krijgen:

itgenoda221
Een verbinding met de database … kon niet worden opgebouwd als gebruiker …
Use of the code grant flow with a refresh token requires presence of a client ID.
Please specify the client ID to identify the application.

In de settings*.xml staat:

<?xml version="1.0" encoding="utf-8"?>
<settings version="5">
  <group name="GROUP">
    <connection name="loketnl-data-replicator" authentication="Application"
     dataCacheConnectionString="provider=SqlServer;connectionString={Server=INSTANCE;Database=DBNAME;User Id=john_the_user;Password=secretpassword;Encrypt=false};beta-store-facts-on-disk=false"
    >
      <database
       provider="LoketNlRest"
       userLogonCodeMode="Hidden"
       passwordMode="Hidden"
       alias="lnl"        
       defaultUserLogonCode="john"
       defaultPassword="secret"
       connectionString=""
      />
    </connection>
	<connection name="loketnl-plain" authentication="Application"
    >
      <database
       provider="LoketNlRest"
       userLogonCodeMode="Hidden"
       passwordMode="Hidden"
       alias="lnl"        
	   defaultUserLogonCode="john"
       defaultPassword="secret"
       connectionString=""
      />
    </connection>
  </group>
</settings>

De call stack is:

ValidationException
   at Invantive.Basics.ValidationException..ctor(GlobalState owner, ExecutionOptions executionOptions, String messageCode, String messageText, String kindRequest, String localStackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Boolean isRecoverable, String poolIdentityId, String url)
   at Invantive.Data.Providers.OData.ODataWithOAuthProvider.GetOAuthToken(GlobalState owner, ExecutionOptions executionOptions, SerializableDatabase database, SerializableDataContainer dataContainer, Credentials credentials, ConnectionStringAttributes connectionAttributes)
   at Invantive.Data.Providers.OData.ODataWithOAuthProvider.Invantive.Data.ISupportsOAuth.GetOAuthToken(GlobalState owner, ExecutionOptions executionOptions, SerializableDatabase database, DataContainer dataContainer, Credentials credentials, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)
   at Invantive.Data.ConnectionManager.DP(GlobalState , ExecutionOptions , IConnectionDataProvider , SerializableDatabase , DataContainer , Credentials , Boolean , Boolean& )
   at Invantive.Data.ConnectionManager.OpenDataContainerProvider(GlobalState owner, ExecutionOptions executionOptions, SerializableDatabase database, DataContainer dataContainer, Credentials credentials, List`1 triedProviders, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)
   at Invantive.Data.ConnectionManager.AP(GlobalState , ExecutionOptions , CredentialsContainer , Boolean , Boolean& )
   at Invantive.Data.ConnectionManager.Open(GlobalState owner, ExecutionOptions executionOptions, CredentialsContainer credentialsContainer, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)
   at Invantive.Producer.UtilityBaseCore.OpenDatabase(GlobalState owner, ExecutionOptions executionOptions, String databaseFullName, CredentialsContainer credentialsContainer, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)
   at Invantive.Producer.Windows.Forms.LogOnViewModel.QZ()
   at System.Threading.Tasks.Task.Execute()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
   at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at Invantive.Data.Providers.OData.ODataWithOAuthProvider.GetOAuthToken(GlobalState owner, ExecutionOptions executionOptions, SerializableDatabase database, SerializableDataContainer dataContainer, Credentials credentials, ConnectionStringAttributes connectionAttributes)
   at Invantive.Data.Providers.OData.ODataWithOAuthProvider.Invantive.Data.ISupportsOAuth.GetOAuthToken(GlobalState owner, ExecutionOptions executionOptions, SerializableDatabase database, DataContainer dataContainer, Credentials credentials, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)
   at Invantive.Data.ConnectionManager.DP(GlobalState , ExecutionOptions , IConnectionDataProvider , SerializableDatabase , DataContainer , Credentials , Boolean , Boolean& )
   at Invantive.Data.ConnectionManager.OpenDataContainerProvider(GlobalState owner, ExecutionOptions executionOptions, SerializableDatabase database, DataContainer dataContainer, Credentials credentials, List`1 triedProviders, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)
   at Invantive.Data.ConnectionManager.AP(GlobalState , ExecutionOptions , CredentialsContainer , Boolean , Boolean& )
   at Invantive.Data.ConnectionManager.Open(GlobalState owner, ExecutionOptions executionOptions, CredentialsContainer credentialsContainer, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)
   at Invantive.Producer.UtilityBaseCore.OpenDatabase(GlobalState owner, ExecutionOptions executionOptions, String databaseFullName, CredentialsContainer credentialsContainer, Boolean ignoreDecryptionErrors, Boolean& decryptionErrorsOccurred)

Is hier al iets over bekend? Alle Loket omgevingen liggen eruit nu.

De foutcode itgenoda221 geeft aan dat de client ID niet aanwezig is. Deze controle is recent toegevoegd om problemen op een ander cloudplatform vroegtijdig te kunnen detecteren. Echter, op Loket is het niet makkelijk om zelf een client ID te verkrijgen. De logica is aangepast zodat de controle doorloopt.

Gelieve de volgende release te installeren. Het beschikbaar komen hiervan is te vinden door het volgende Twitter-account te volgen:

https://twitter.com/invantive

Voor Invantive Cloud-gebruikers is er geen impact; de client ID wordt hier centraal op bijgehouden.