Intermittent 'There is no type name' for new rule extension

I have…

I’m submitting a…

  • [ ] Regression (a behavior that stopped working in a new release)
  • [x] Bug report
  • [ ] Performance issue
  • [ ] Documentation issue or request

Current behavior

We have started building out a new custom extension rule based of the Webhook Extension example. When the rules using the extension are fired they typically work fine however intermittently (1 in 50 or so) will fail with the below error message. Upon the automatic retry of the failed rule the error typically resolves itself but sometimes the retry attempts will reach up to 5 before it successfully completes.

There is no type for name 'AzureServiceBusTopicAction

Error: There is no type for name 'AzureServiceBusTopicAction

I’ve tried looking into the logs for this but the logs don’t appear to be catching the error. I would have assumed it was a problem with the extension itself or the data but that doesn’t appear to be the case since it works upon retry. I’m not sure if there is some caching going on in the background for rule extensions?

Expected behavior

The rule would work every single time.

Minimal reproduction of the problem

I can share the plugin privately if required.

Environment

App Name:

  • [x] Self hosted with docker
  • [ ] Self hosted with IIS
  • [ ] Self hosted with other version
  • [ ] Cloud version

Version: Latest master commit from Github

Browser:

  • [x] Chrome (desktop)
  • [ ] Chrome (Android)
  • [ ] Chrome (iOS)
  • [ ] Firefox
  • [ ] Safari (desktop)
  • [ ] Safari (iOS)
  • [ ] IE
  • [ ] Edge

Others:

1 Like

Do you have multiple instances of Squidex deployed and could one of these instances not be up to date?

We only have one instance of Squidex deployed in the development environments.

I have no idea, I have never seen that.

Here is a log that I found however from initial looks it doesn’t appear related.

{
	"logLevel":"Error",
	"message":"Caught and ignored exception: Squidex.Infrastructure.States.InconsistentStateException with message: Requested version 45303, but found 45322.
thrown from timer callback GrainTimer. TimerCallbackHandler:Squidex.Domain.Apps.Entities.Rules.UsageTracking.UsageTrackerGrain-\u003ESystem.Threading.Tasks.Task \u003COnActiv
ateAsync\u003Eb__5_0(System.Object)",
	"eventId":{
		 "id":101413
	},
	"timestamp":"2022-04-12T09:57:19Z",
	"app":{
		 "name":"Squidex",
		 "version":"0.0.0.0",
		 "sessionId":"b490ab7b-d3bd-4285-8e
67-bc7846f3d953"
	},
	"category":"Orleans.Runtime.GrainTimer",
	"exception":{
		 "type":"Squidex.Infrastructure.States.InconsistentStateException",
		 "message":"Requested version 45303, b
ut found 45322.",
		 "stackTrace":"   at Squidex.Infrastructure.MongoDb.MongoExtensions.UpsertVersionedAsync[T,TKey](IMongoCollection\u00601 collection, TKey key, Int64 oldVersio
n, Int64 newVersion, T document, CancellationToken ct) in C:\\src\\src\\Squidex.Infrastructure.MongoDb\\MongoDb\\MongoExtensions.cs:line 142\r\n   at Squidex.Infrastructure.S
tates.MongoSnapshotStoreBase\u00602.WriteAsync(DomainId key, T value, Int64 oldVersion, Int64 newVersion, CancellationToken ct) in C:\\src\\src\\Squidex.Infrastructure.MongoD
b\\States\\MongoSnapshotStoreBase.cs:line 68\r\n   at Squidex.Infrastructure.States.Persistence\u00601.WriteSnapshotAsync(T state) in C:\\src\\src\\Squidex.Infrastructure\\St
ates\\Persistence.cs:line 188\r\n   at Squidex.Domain.Apps.Entities.Rules.UsageTracking.UsageTrackerGrain.CheckUsagesAsync() in C:\\src\\src\\Squidex.Domain.Apps.Entities\\Ru
les\\UsageTracking\\UsageTrackerGrain.cs:line 122\r\n   at Orleans.Runtime.GrainTimer.ForwardToAsyncCallback(Object state) in /_/src/Orleans.Runtime/Timers/GrainTimer.cs:line
132"
	}

Totally unrelated to the problem.