AshStateMachine.Checks.ValidNextState does not block some invalid transition

This is a test code for ash_state_machine.
https://github.com/rapidfsub/sonet/blob/develop/test/sonet_lib/ash_state_machine/common_test.exs#L48

assert Ashex.can?({object, :progress}, nil) == false

This assertion passes, so I think there is no permission.

assert {:error, %Ash.Error.Forbidden{}} = Ashex.run_update(object, :progress, actor: nil)

But this assertion does not pass, because the Object.progress action fails with Ash.Error.Invalid.
I think action call without permission should return Ash.Error.Forbidden.
And Ash.Error.Invalid looks like a validation error.

Is this a bug?