Describe the bug
MemoryClient.update_memory_strategies() calls self.gmcp_client.update_memory() but never includes the memoryExecutionRoleArn parameter. The UpdateMemory API now requires this field when
adding strategies that invoke models (e.g., custom episodic strategies with extraction/consolidation/reflection prompts). This causes all add_custom_episodic_strategy calls to fail with a
ValidationException.
The same issue affects add_custom_episodic_strategy_and_wait since it delegates to update_memory_strategies.
To Reproduce
- Install bedrock-agentcore==0.3.5
- Create a memory resource with mode=STM_AND_LTM
- Attempt to add a custom episodic strategy:
from bedrock_agentcore.memory.client import MemoryClient
client = MemoryClient(region_name="us-east-1")
client.add_custom_episodic_strategy_and_wait(
memory_id="",
name="my_episodic",
extraction_config={"prompt": "...", "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0"},
consolidation_config={"prompt": "...", "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0"},
reflection_config={
"prompt": "...",
"modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0",
"namespaces": ["/strategies/{memoryStrategyId}/actors/{actorId}/"],
},
description="Cross-session pattern learning",
namespaces=["/strategies/{memoryStrategyId}/actors/{actorId}/sessions/{sessionId}/"],
)
- See error
Expected behavior
The episodic strategy should be created successfully. The update_memory call in update_memory_strategies should pass memoryExecutionRoleArn (either from the memory resource's existing
config, or as a new parameter on update_memory_strategies / add_custom_episodic_strategy).
Error Output
botocore.errorfactory.ValidationException: An error occurred (ValidationException) when calling the UpdateMemory operation: Validation failed during UpdateMemory: Please provide
memoryExecutionRoleArn
Environment:
- OS: Amazon Linux 2023 (AgentCore runtime) / macOS 15.5
- Python version: 3.13
- Package version: bedrock-agentcore 0.3.5 (also reproduced on 0.1.0)
- Installation method: pip
Additional context
The root cause is in MemoryClient.update_memory_strategies() — the update_memory call only passes memoryId, memoryStrategies, and clientToken:
response = self.gmcp_client.update_memory(
memoryId=memory_id,
memoryStrategies=memory_strategies,
clientToken=str(uuid.uuid4()),
)
The UpdateMemory API accepts memoryExecutionRoleArn as a parameter (confirmed via boto3 bedrock-agentcore-control service model), and it's required when adding strategies that invoke
models.
Workaround: Call boto3.client("bedrock-agentcore-control").update_memory() directly with memoryExecutionRoleArn included.
Describe the bug
MemoryClient.update_memory_strategies() calls self.gmcp_client.update_memory() but never includes the memoryExecutionRoleArn parameter. The UpdateMemory API now requires this field when
adding strategies that invoke models (e.g., custom episodic strategies with extraction/consolidation/reflection prompts). This causes all add_custom_episodic_strategy calls to fail with a
ValidationException.
The same issue affects add_custom_episodic_strategy_and_wait since it delegates to update_memory_strategies.
To Reproduce
from bedrock_agentcore.memory.client import MemoryClient
client = MemoryClient(region_name="us-east-1")
client.add_custom_episodic_strategy_and_wait(
memory_id="",
name="my_episodic",
extraction_config={"prompt": "...", "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0"},
consolidation_config={"prompt": "...", "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0"},
reflection_config={
"prompt": "...",
"modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0",
"namespaces": ["/strategies/{memoryStrategyId}/actors/{actorId}/"],
},
description="Cross-session pattern learning",
namespaces=["/strategies/{memoryStrategyId}/actors/{actorId}/sessions/{sessionId}/"],
)
Expected behavior
The episodic strategy should be created successfully. The update_memory call in update_memory_strategies should pass memoryExecutionRoleArn (either from the memory resource's existing
config, or as a new parameter on update_memory_strategies / add_custom_episodic_strategy).
Error Output
botocore.errorfactory.ValidationException: An error occurred (ValidationException) when calling the UpdateMemory operation: Validation failed during UpdateMemory: Please provide
memoryExecutionRoleArn
Environment:
Additional context
The root cause is in MemoryClient.update_memory_strategies() — the update_memory call only passes memoryId, memoryStrategies, and clientToken:
response = self.gmcp_client.update_memory(
memoryId=memory_id,
memoryStrategies=memory_strategies,
clientToken=str(uuid.uuid4()),
)
The UpdateMemory API accepts memoryExecutionRoleArn as a parameter (confirmed via boto3 bedrock-agentcore-control service model), and it's required when adding strategies that invoke
models.
Workaround: Call boto3.client("bedrock-agentcore-control").update_memory() directly with memoryExecutionRoleArn included.