scheduler: Debug assert IRQs deferred on exception
diff --git a/sdk/core/scheduler/main.cc b/sdk/core/scheduler/main.cc
index 7eef487..678c784 100644
--- a/sdk/core/scheduler/main.cc
+++ b/sdk/core/scheduler/main.cc
@@ -258,6 +258,15 @@
 	                                               size_t        mepc,
 	                                               size_t        mtval)
 	{
+		if constexpr (DebugScheduler)
+		{
+			/* Ensure that we got here from an IRQ-s deferred context */
+			Capability returnAddress{__builtin_return_address(0)};
+			Debug::Assert(
+			  returnAddress.type() == CheriSealTypeReturnSentryDisabling,
+			  "Scheduler exception_entry called from IRQ-enabled context");
+		}
+
 		// The cycle count value the last time the scheduler returned.
 		bool schedNeeded;
 		if constexpr (Accounting)