Description
When a workflow uses GroupChatBuilder with checkpoint persistence, checkpoint restore can fail because built-in group-chat envelope types are not included in the default checkpoint deserialization allowlist.
The affected types include:
agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatRequestMessage
agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatParticipantMessage
agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatResponseMessage
These are framework-owned types emitted and routed by the group-chat orchestration implementation, but users currently need to manually add them to FileCheckpointStorage(allowed_checkpoint_types=...).
Error
Failed to decode pickled checkpoint data: Checkpoint deserialization blocked for type 'agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatParticipantMessage'. To allow this type, either include its 'module:qualname' key in the 'allowed_types' set passed to 'decode_checkpoint_value', or add it to 'allowed_checkpoint_types' on your checkpoint storage.
Reproduction
from agent_framework._workflows._checkpoint import FileCheckpointStorage
from agent_framework_orchestrations import GroupChatBuilder
storage = FileCheckpointStorage("./checkpoints")
workflow = GroupChatBuilder(
participants=[...],
orchestrator_agent=...,
checkpoint_storage=storage,
).build()
# Run until a checkpoint contains a group-chat envelope, then restore it.
Expected behavior
Framework-owned orchestration message types should be included in the framework's trusted checkpoint type registry by default, or the orchestration package should provide a documented helper that registers all of its checkpoint-safe types.
Users should not need to maintain an internal module-path allowlist for built-in MAF orchestration envelopes.
Workaround
storage = FileCheckpointStorage(
"./checkpoints",
allowed_checkpoint_types=[
"agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatRequestMessage",
"agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatParticipantMessage",
"agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatResponseMessage",
],
)
Additional context
The same consideration may apply to other framework-owned orchestration payloads, such as handoff and Magentic orchestration event/request types. It would be useful to audit all built-in types that can cross a checkpoint boundary and ensure they are registered consistently.
Description
When a workflow uses
GroupChatBuilderwith checkpoint persistence, checkpoint restore can fail because built-in group-chat envelope types are not included in the default checkpoint deserialization allowlist.The affected types include:
agent_framework_orchestrations._base_group_chat_orchestrator:GroupChatRequestMessageagent_framework_orchestrations._base_group_chat_orchestrator:GroupChatParticipantMessageagent_framework_orchestrations._base_group_chat_orchestrator:GroupChatResponseMessageThese are framework-owned types emitted and routed by the group-chat orchestration implementation, but users currently need to manually add them to
FileCheckpointStorage(allowed_checkpoint_types=...).Error
Reproduction
Expected behavior
Framework-owned orchestration message types should be included in the framework's trusted checkpoint type registry by default, or the orchestration package should provide a documented helper that registers all of its checkpoint-safe types.
Users should not need to maintain an internal module-path allowlist for built-in MAF orchestration envelopes.
Workaround
Additional context
The same consideration may apply to other framework-owned orchestration payloads, such as handoff and Magentic orchestration event/request types. It would be useful to audit all built-in types that can cross a checkpoint boundary and ensure they are registered consistently.