Skip to content

Packager silently excludes */agentcore/* subpackages from deployment zip #902

Description

@JamesSkinna

Description

Summary

The agentcore deploy command produces a zip that is missing any Python package
subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
langgraph_checkpoint_aws/agentcore/.

Affected versions

ComponentVersion confirmed broken
agentcore CLI0.9.1
@aws/agentcore-cdk(bundled with CLI 0.9.1)
langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

Symptoms

Lambda cold-start traceback in CloudWatch:

File "/var/task/main.py", line 5, in <module>
from langgraph_checkpoint_aws import AgentCoreMemorySaver
File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
from langgraph_checkpoint_aws.agentcore.saver import (
ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'

The agent works correctly with agentcore dev (local Docker run) because the local
.venv is intact. Only agentcore deploy is affected.

Root cause

The file responsible for building the deployment zip is:

node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js

It contains a hardcoded exclusion set used by collectFilesSync when walking the
staging directory to build the zip:

// ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

The intent of 'agentcore' is to prevent the project's own agentcore/ config
directory from being bundled into the zip. However, the check is applied by
entry name only at every level of the directory tree, not just at the root:

for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
...
}

Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
installed into the staging directory, it is silently dropped from the zip.

The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

So the deployed Lambda fails on import immediately at cold-start.

Crucially, the agentcore/ project config directory is never present in the
staging directory in the first place — only installed Python packages end up there.
The exclusion is therefore both unnecessary and harmful.

Suggested fix (upstream)

Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
project config directory is never present in the staging directory, so the entry
serves no purpose and only causes harm.

 const EXCLUDED_ENTRIES = new Set([
- 'agentcore',
'.git',
'.venv',
'__pycache__',
'.pytest_cache',
'.DS_Store',
'node_modules',
]);

If the intent is to guard against the project config directory specifically, a
safer alternative would be to only exclude entries at the top level of the
staging directory walk, rather than recursively at every depth.

Temporary local workaround

This patch must be applied to the installed node_modules (it will be reverted by
npm install — see re-application instructions below).

File to edit:

agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js

Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

 const EXCLUDED_ENTRIES = new Set([
- 'agentcore',
'.git',
'.venv',

After patching, delete the stale CDK output so CDK does not reuse the previously
hashed (broken) zip, then redeploy:

rm -rf agentcore/cdk/cdk.out
agentcore deploy

Verify the fix:

unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
# should now list: agentcore/saver.py, agentcore/store.py, etc.

Re-applying the patch after npm install

Running npm install inside agentcore/cdk/ will overwrite node_modules and
lose the patch. Re-apply it with:

sed -i """/'agentcore',/d" \
agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
rm -rf agentcore/cdk/cdk.out
agentcore deploy

Notes

  • This bug will affect any Python package that ships a subpackage named
    agentcore — not just langgraph-checkpoint-aws.
  • agentcore dev is unaffected because it mounts the local .venv directly.
  • The uv pip install step in the packager runs correctly and populates the
    staging directory with the full package including the agentcore/ subpackage.
    The bug is exclusively in the zip-creation step that follows.
  • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
    to confirm the package is installed correctly before the zip is built.

Steps to Reproduce

  1. Create an AgentCore project using the CodeZip build type with Python 3.12.
  2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
  3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
  4. Run agentcore deploy.
  5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

Verify the zip is broken before deploying:

unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
# produces no output — directory is absent from the zip

Expected Behavior

  • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

Actual Behavior

Lambda cold-start traceback in CloudWatch:

File "/var/task/main.py", line 5, in <module>
from langgraph_checkpoint_aws import AgentCoreMemorySaver
File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
from langgraph_checkpoint_aws.agentcore.saver import (
ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'

The agent works correctly with agentcore dev (local Docker run) because the local
.venv is intact. Only agentcore deploy is affected.

CLI Version

0.9.1

Operating System

macOS

Additional Context

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
     blocks
    (function() {
    function addCopyButtons() {
    document.querySelectorAll('pre code').forEach(function(codeBlock) {
    if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
    codeBlock.parentElement.setAttribute('data-copy-added', 'true');
    var btn = document.createElement('button');
    btn.textContent = 'Copy';
    btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
    btn.onmouseover = function() { this.style.opacity = '1'; };
    btn.onmouseout = function() { this.style.opacity = '0.7'; };
    btn.onclick = function() {
    navigator.clipboard.writeText(codeBlock.textContent).then(function() {
    btn.textContent = 'Copied!';
    setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
    });
    };
    codeBlock.parentElement.style.position = 'relative';
    codeBlock.parentElement.appendChild(btn);
    });
    }
    addCopyButtons();
    // Re-run on dynamic content
    var observer = new MutationObserver(addCopyButtons);
    observer.observe(document.body, { childList: true, subtree: true });
    })();
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    Packager silently excludes `*/agentcore/*` subpackages from deployment zip · Issue #902 · aws/agentcore-cli · GitHub
    Skip to content

    Packager silently excludes */agentcore/* subpackages from deployment zip #902

    Description

    @JamesSkinna

    Description

    Summary

    The agentcore deploy command produces a zip that is missing any Python package
    subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
    for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
    langgraph_checkpoint_aws/agentcore/.

    Affected versions

    ComponentVersion confirmed broken
    agentcore CLI0.9.1
    @aws/agentcore-cdk(bundled with CLI 0.9.1)
    langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

    Symptoms

    Lambda cold-start traceback in CloudWatch:

    File "/var/task/main.py", line 5, in <module>
    from langgraph_checkpoint_aws import AgentCoreMemorySaver
    File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
    from langgraph_checkpoint_aws.agentcore.saver import (
    ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
    

    The agent works correctly with agentcore dev (local Docker run) because the local
    .venv is intact. Only agentcore deploy is affected.

    Root cause

    The file responsible for building the deployment zip is:

    node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
    

    It contains a hardcoded exclusion set used by collectFilesSync when walking the
    staging directory to build the zip:

    // ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

    The intent of 'agentcore' is to prevent the project's own agentcore/ config
    directory from being bundled into the zip. However, the check is applied by
    entry name only at every level of the directory tree, not just at the root:

    for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
    ...
    }

    Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
    installed into the staging directory, it is silently dropped from the zip.

    The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

    fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

    So the deployed Lambda fails on import immediately at cold-start.

    Crucially, the agentcore/ project config directory is never present in the
    staging directory in the first place — only installed Python packages end up there.
    The exclusion is therefore both unnecessary and harmful.

    Suggested fix (upstream)

    Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
    project config directory is never present in the staging directory, so the entry
    serves no purpose and only causes harm.

     const EXCLUDED_ENTRIES = new Set([
    - 'agentcore',
    '.git',
    '.venv',
    '__pycache__',
    '.pytest_cache',
    '.DS_Store',
    'node_modules',
    ]);

    If the intent is to guard against the project config directory specifically, a
    safer alternative would be to only exclude entries at the top level of the
    staging directory walk, rather than recursively at every depth.

    Temporary local workaround

    This patch must be applied to the installed node_modules (it will be reverted by
    npm install — see re-application instructions below).

    File to edit:

    agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
    

    Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

     const EXCLUDED_ENTRIES = new Set([
    - 'agentcore',
    '.git',
    '.venv',

    After patching, delete the stale CDK output so CDK does not reuse the previously
    hashed (broken) zip, then redeploy:

    rm -rf agentcore/cdk/cdk.out
    agentcore deploy

    Verify the fix:

    unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
    # should now list: agentcore/saver.py, agentcore/store.py, etc.

    Re-applying the patch after npm install

    Running npm install inside agentcore/cdk/ will overwrite node_modules and
    lose the patch. Re-apply it with:

    sed -i """/'agentcore',/d" \
    agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
    rm -rf agentcore/cdk/cdk.out
    agentcore deploy

    Notes

    • This bug will affect any Python package that ships a subpackage named
      agentcore — not just langgraph-checkpoint-aws.
    • agentcore dev is unaffected because it mounts the local .venv directly.
    • The uv pip install step in the packager runs correctly and populates the
      staging directory with the full package including the agentcore/ subpackage.
      The bug is exclusively in the zip-creation step that follows.
    • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
      to confirm the package is installed correctly before the zip is built.

    Steps to Reproduce

    1. Create an AgentCore project using the CodeZip build type with Python 3.12.
    2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
    3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
    4. Run agentcore deploy.
    5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

    Verify the zip is broken before deploying:

    unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
    # produces no output — directory is absent from the zip

    Expected Behavior

    • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

    Actual Behavior

    Lambda cold-start traceback in CloudWatch:

    File "/var/task/main.py", line 5, in <module>
    from langgraph_checkpoint_aws import AgentCoreMemorySaver
    File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
    from langgraph_checkpoint_aws.agentcore.saver import (
    ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
    

    The agent works correctly with agentcore dev (local Docker run) because the local
    .venv is intact. Only agentcore deploy is affected.

    CLI Version

    0.9.1

    Operating System

    macOS

    Additional Context

    No response

    Metadata

    Metadata

    Assignees

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Packager silently excludes `*/agentcore/*` subpackages from deployment zip · Issue #902 · aws/agentcore-cli · GitHub
      Skip to content

      Packager silently excludes */agentcore/* subpackages from deployment zip #902

      Description

      @JamesSkinna

      Description

      Summary

      The agentcore deploy command produces a zip that is missing any Python package
      subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
      for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
      langgraph_checkpoint_aws/agentcore/.

      Affected versions

      ComponentVersion confirmed broken
      agentcore CLI0.9.1
      @aws/agentcore-cdk(bundled with CLI 0.9.1)
      langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

      Symptoms

      Lambda cold-start traceback in CloudWatch:

      File "/var/task/main.py", line 5, in <module>
      from langgraph_checkpoint_aws import AgentCoreMemorySaver
      File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
      from langgraph_checkpoint_aws.agentcore.saver import (
      ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
      

      The agent works correctly with agentcore dev (local Docker run) because the local
      .venv is intact. Only agentcore deploy is affected.

      Root cause

      The file responsible for building the deployment zip is:

      node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
      

      It contains a hardcoded exclusion set used by collectFilesSync when walking the
      staging directory to build the zip:

      // ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

      The intent of 'agentcore' is to prevent the project's own agentcore/ config
      directory from being bundled into the zip. However, the check is applied by
      entry name only at every level of the directory tree, not just at the root:

      for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
      ...
      }

      Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
      installed into the staging directory, it is silently dropped from the zip.

      The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

      fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

      So the deployed Lambda fails on import immediately at cold-start.

      Crucially, the agentcore/ project config directory is never present in the
      staging directory in the first place — only installed Python packages end up there.
      The exclusion is therefore both unnecessary and harmful.

      Suggested fix (upstream)

      Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
      project config directory is never present in the staging directory, so the entry
      serves no purpose and only causes harm.

       const EXCLUDED_ENTRIES = new Set([
      - 'agentcore',
      '.git',
      '.venv',
      '__pycache__',
      '.pytest_cache',
      '.DS_Store',
      'node_modules',
      ]);

      If the intent is to guard against the project config directory specifically, a
      safer alternative would be to only exclude entries at the top level of the
      staging directory walk, rather than recursively at every depth.

      Temporary local workaround

      This patch must be applied to the installed node_modules (it will be reverted by
      npm install — see re-application instructions below).

      File to edit:

      agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
      

      Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

       const EXCLUDED_ENTRIES = new Set([
      - 'agentcore',
      '.git',
      '.venv',

      After patching, delete the stale CDK output so CDK does not reuse the previously
      hashed (broken) zip, then redeploy:

      rm -rf agentcore/cdk/cdk.out
      agentcore deploy

      Verify the fix:

      unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
      # should now list: agentcore/saver.py, agentcore/store.py, etc.

      Re-applying the patch after npm install

      Running npm install inside agentcore/cdk/ will overwrite node_modules and
      lose the patch. Re-apply it with:

      sed -i """/'agentcore',/d" \
      agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
      rm -rf agentcore/cdk/cdk.out
      agentcore deploy

      Notes

      • This bug will affect any Python package that ships a subpackage named
        agentcore — not just langgraph-checkpoint-aws.
      • agentcore dev is unaffected because it mounts the local .venv directly.
      • The uv pip install step in the packager runs correctly and populates the
        staging directory with the full package including the agentcore/ subpackage.
        The bug is exclusively in the zip-creation step that follows.
      • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
        to confirm the package is installed correctly before the zip is built.

      Steps to Reproduce

      1. Create an AgentCore project using the CodeZip build type with Python 3.12.
      2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
      3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
      4. Run agentcore deploy.
      5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

      Verify the zip is broken before deploying:

      unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
      # produces no output — directory is absent from the zip

      Expected Behavior

      • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

      Actual Behavior

      Lambda cold-start traceback in CloudWatch:

      File "/var/task/main.py", line 5, in <module>
      from langgraph_checkpoint_aws import AgentCoreMemorySaver
      File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
      from langgraph_checkpoint_aws.agentcore.saver import (
      ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
      

      The agent works correctly with agentcore dev (local Docker run) because the local
      .venv is intact. Only agentcore deploy is affected.

      CLI Version

      0.9.1

      Operating System

      macOS

      Additional Context

      No response

      Metadata

      Metadata

      Assignees

      Labels

      bugSomething isn't working

      Type

      No type

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Packager silently excludes `*/agentcore/*` subpackages from deployment zip · Issue #902 · aws/agentcore-cli · GitHub
        Skip to content

        Packager silently excludes */agentcore/* subpackages from deployment zip #902

        Description

        @JamesSkinna

        Description

        Summary

        The agentcore deploy command produces a zip that is missing any Python package
        subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
        for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
        langgraph_checkpoint_aws/agentcore/.

        Affected versions

        ComponentVersion confirmed broken
        agentcore CLI0.9.1
        @aws/agentcore-cdk(bundled with CLI 0.9.1)
        langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

        Symptoms

        Lambda cold-start traceback in CloudWatch:

        File "/var/task/main.py", line 5, in <module>
        from langgraph_checkpoint_aws import AgentCoreMemorySaver
        File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
        from langgraph_checkpoint_aws.agentcore.saver import (
        ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
        

        The agent works correctly with agentcore dev (local Docker run) because the local
        .venv is intact. Only agentcore deploy is affected.

        Root cause

        The file responsible for building the deployment zip is:

        node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
        

        It contains a hardcoded exclusion set used by collectFilesSync when walking the
        staging directory to build the zip:

        // ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

        The intent of 'agentcore' is to prevent the project's own agentcore/ config
        directory from being bundled into the zip. However, the check is applied by
        entry name only at every level of the directory tree, not just at the root:

        for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
        ...
        }

        Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
        installed into the staging directory, it is silently dropped from the zip.

        The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

        fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

        So the deployed Lambda fails on import immediately at cold-start.

        Crucially, the agentcore/ project config directory is never present in the
        staging directory in the first place — only installed Python packages end up there.
        The exclusion is therefore both unnecessary and harmful.

        Suggested fix (upstream)

        Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
        project config directory is never present in the staging directory, so the entry
        serves no purpose and only causes harm.

         const EXCLUDED_ENTRIES = new Set([
        - 'agentcore',
        '.git',
        '.venv',
        '__pycache__',
        '.pytest_cache',
        '.DS_Store',
        'node_modules',
        ]);

        If the intent is to guard against the project config directory specifically, a
        safer alternative would be to only exclude entries at the top level of the
        staging directory walk, rather than recursively at every depth.

        Temporary local workaround

        This patch must be applied to the installed node_modules (it will be reverted by
        npm install — see re-application instructions below).

        File to edit:

        agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
        

        Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

         const EXCLUDED_ENTRIES = new Set([
        - 'agentcore',
        '.git',
        '.venv',

        After patching, delete the stale CDK output so CDK does not reuse the previously
        hashed (broken) zip, then redeploy:

        rm -rf agentcore/cdk/cdk.out
        agentcore deploy

        Verify the fix:

        unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
        # should now list: agentcore/saver.py, agentcore/store.py, etc.

        Re-applying the patch after npm install

        Running npm install inside agentcore/cdk/ will overwrite node_modules and
        lose the patch. Re-apply it with:

        sed -i """/'agentcore',/d" \
        agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
        rm -rf agentcore/cdk/cdk.out
        agentcore deploy

        Notes

        • This bug will affect any Python package that ships a subpackage named
          agentcore — not just langgraph-checkpoint-aws.
        • agentcore dev is unaffected because it mounts the local .venv directly.
        • The uv pip install step in the packager runs correctly and populates the
          staging directory with the full package including the agentcore/ subpackage.
          The bug is exclusively in the zip-creation step that follows.
        • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
          to confirm the package is installed correctly before the zip is built.

        Steps to Reproduce

        1. Create an AgentCore project using the CodeZip build type with Python 3.12.
        2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
        3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
        4. Run agentcore deploy.
        5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

        Verify the zip is broken before deploying:

        unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
        # produces no output — directory is absent from the zip

        Expected Behavior

        • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

        Actual Behavior

        Lambda cold-start traceback in CloudWatch:

        File "/var/task/main.py", line 5, in <module>
        from langgraph_checkpoint_aws import AgentCoreMemorySaver
        File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
        from langgraph_checkpoint_aws.agentcore.saver import (
        ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
        

        The agent works correctly with agentcore dev (local Docker run) because the local
        .venv is intact. Only agentcore deploy is affected.

        CLI Version

        0.9.1

        Operating System

        macOS

        Additional Context

        No response

        Metadata

        Metadata

        Assignees

        Labels

        bugSomething isn't working

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Packager silently excludes `*/agentcore/*` subpackages from deployment zip · Issue #902 · aws/agentcore-cli · GitHub
          Skip to content

          Packager silently excludes */agentcore/* subpackages from deployment zip #902

          Description

          @JamesSkinna

          Description

          Summary

          The agentcore deploy command produces a zip that is missing any Python package
          subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
          for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
          langgraph_checkpoint_aws/agentcore/.

          Affected versions

          ComponentVersion confirmed broken
          agentcore CLI0.9.1
          @aws/agentcore-cdk(bundled with CLI 0.9.1)
          langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

          Symptoms

          Lambda cold-start traceback in CloudWatch:

          File "/var/task/main.py", line 5, in <module>
          from langgraph_checkpoint_aws import AgentCoreMemorySaver
          File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
          from langgraph_checkpoint_aws.agentcore.saver import (
          ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
          

          The agent works correctly with agentcore dev (local Docker run) because the local
          .venv is intact. Only agentcore deploy is affected.

          Root cause

          The file responsible for building the deployment zip is:

          node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
          

          It contains a hardcoded exclusion set used by collectFilesSync when walking the
          staging directory to build the zip:

          // ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

          The intent of 'agentcore' is to prevent the project's own agentcore/ config
          directory from being bundled into the zip. However, the check is applied by
          entry name only at every level of the directory tree, not just at the root:

          for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
          ...
          }

          Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
          installed into the staging directory, it is silently dropped from the zip.

          The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

          fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

          So the deployed Lambda fails on import immediately at cold-start.

          Crucially, the agentcore/ project config directory is never present in the
          staging directory in the first place — only installed Python packages end up there.
          The exclusion is therefore both unnecessary and harmful.

          Suggested fix (upstream)

          Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
          project config directory is never present in the staging directory, so the entry
          serves no purpose and only causes harm.

           const EXCLUDED_ENTRIES = new Set([
          - 'agentcore',
          '.git',
          '.venv',
          '__pycache__',
          '.pytest_cache',
          '.DS_Store',
          'node_modules',
          ]);

          If the intent is to guard against the project config directory specifically, a
          safer alternative would be to only exclude entries at the top level of the
          staging directory walk, rather than recursively at every depth.

          Temporary local workaround

          This patch must be applied to the installed node_modules (it will be reverted by
          npm install — see re-application instructions below).

          File to edit:

          agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
          

          Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

           const EXCLUDED_ENTRIES = new Set([
          - 'agentcore',
          '.git',
          '.venv',

          After patching, delete the stale CDK output so CDK does not reuse the previously
          hashed (broken) zip, then redeploy:

          rm -rf agentcore/cdk/cdk.out
          agentcore deploy

          Verify the fix:

          unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
          # should now list: agentcore/saver.py, agentcore/store.py, etc.

          Re-applying the patch after npm install

          Running npm install inside agentcore/cdk/ will overwrite node_modules and
          lose the patch. Re-apply it with:

          sed -i """/'agentcore',/d" \
          agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
          rm -rf agentcore/cdk/cdk.out
          agentcore deploy

          Notes

          • This bug will affect any Python package that ships a subpackage named
            agentcore — not just langgraph-checkpoint-aws.
          • agentcore dev is unaffected because it mounts the local .venv directly.
          • The uv pip install step in the packager runs correctly and populates the
            staging directory with the full package including the agentcore/ subpackage.
            The bug is exclusively in the zip-creation step that follows.
          • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
            to confirm the package is installed correctly before the zip is built.

          Steps to Reproduce

          1. Create an AgentCore project using the CodeZip build type with Python 3.12.
          2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
          3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
          4. Run agentcore deploy.
          5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

          Verify the zip is broken before deploying:

          unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
          # produces no output — directory is absent from the zip

          Expected Behavior

          • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

          Actual Behavior

          Lambda cold-start traceback in CloudWatch:

          File "/var/task/main.py", line 5, in <module>
          from langgraph_checkpoint_aws import AgentCoreMemorySaver
          File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
          from langgraph_checkpoint_aws.agentcore.saver import (
          ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
          

          The agent works correctly with agentcore dev (local Docker run) because the local
          .venv is intact. Only agentcore deploy is affected.

          CLI Version

          0.9.1

          Operating System

          macOS

          Additional Context

          No response

          Metadata

          Metadata

          Assignees

          Labels

          bugSomething isn't working

          Type

          No type

          Projects

          No projects

            Milestone

            No milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Packager silently excludes `*/agentcore/*` subpackages from deployment zip · Issue #902 · aws/agentcore-cli · GitHub
            Skip to content

            Packager silently excludes */agentcore/* subpackages from deployment zip #902

            Description

            @JamesSkinna

            Description

            Summary

            The agentcore deploy command produces a zip that is missing any Python package
            subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
            for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
            langgraph_checkpoint_aws/agentcore/.

            Affected versions

            ComponentVersion confirmed broken
            agentcore CLI0.9.1
            @aws/agentcore-cdk(bundled with CLI 0.9.1)
            langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

            Symptoms

            Lambda cold-start traceback in CloudWatch:

            File "/var/task/main.py", line 5, in <module>
            from langgraph_checkpoint_aws import AgentCoreMemorySaver
            File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
            from langgraph_checkpoint_aws.agentcore.saver import (
            ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
            

            The agent works correctly with agentcore dev (local Docker run) because the local
            .venv is intact. Only agentcore deploy is affected.

            Root cause

            The file responsible for building the deployment zip is:

            node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
            

            It contains a hardcoded exclusion set used by collectFilesSync when walking the
            staging directory to build the zip:

            // ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

            The intent of 'agentcore' is to prevent the project's own agentcore/ config
            directory from being bundled into the zip. However, the check is applied by
            entry name only at every level of the directory tree, not just at the root:

            for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
            ...
            }

            Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
            installed into the staging directory, it is silently dropped from the zip.

            The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

            fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

            So the deployed Lambda fails on import immediately at cold-start.

            Crucially, the agentcore/ project config directory is never present in the
            staging directory in the first place — only installed Python packages end up there.
            The exclusion is therefore both unnecessary and harmful.

            Suggested fix (upstream)

            Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
            project config directory is never present in the staging directory, so the entry
            serves no purpose and only causes harm.

             const EXCLUDED_ENTRIES = new Set([
            - 'agentcore',
            '.git',
            '.venv',
            '__pycache__',
            '.pytest_cache',
            '.DS_Store',
            'node_modules',
            ]);

            If the intent is to guard against the project config directory specifically, a
            safer alternative would be to only exclude entries at the top level of the
            staging directory walk, rather than recursively at every depth.

            Temporary local workaround

            This patch must be applied to the installed node_modules (it will be reverted by
            npm install — see re-application instructions below).

            File to edit:

            agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
            

            Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

             const EXCLUDED_ENTRIES = new Set([
            - 'agentcore',
            '.git',
            '.venv',

            After patching, delete the stale CDK output so CDK does not reuse the previously
            hashed (broken) zip, then redeploy:

            rm -rf agentcore/cdk/cdk.out
            agentcore deploy

            Verify the fix:

            unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
            # should now list: agentcore/saver.py, agentcore/store.py, etc.

            Re-applying the patch after npm install

            Running npm install inside agentcore/cdk/ will overwrite node_modules and
            lose the patch. Re-apply it with:

            sed -i """/'agentcore',/d" \
            agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
            rm -rf agentcore/cdk/cdk.out
            agentcore deploy

            Notes

            • This bug will affect any Python package that ships a subpackage named
              agentcore — not just langgraph-checkpoint-aws.
            • agentcore dev is unaffected because it mounts the local .venv directly.
            • The uv pip install step in the packager runs correctly and populates the
              staging directory with the full package including the agentcore/ subpackage.
              The bug is exclusively in the zip-creation step that follows.
            • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
              to confirm the package is installed correctly before the zip is built.

            Steps to Reproduce

            1. Create an AgentCore project using the CodeZip build type with Python 3.12.
            2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
            3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
            4. Run agentcore deploy.
            5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

            Verify the zip is broken before deploying:

            unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
            # produces no output — directory is absent from the zip

            Expected Behavior

            • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

            Actual Behavior

            Lambda cold-start traceback in CloudWatch:

            File "/var/task/main.py", line 5, in <module>
            from langgraph_checkpoint_aws import AgentCoreMemorySaver
            File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
            from langgraph_checkpoint_aws.agentcore.saver import (
            ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
            

            The agent works correctly with agentcore dev (local Docker run) because the local
            .venv is intact. Only agentcore deploy is affected.

            CLI Version

            0.9.1

            Operating System

            macOS

            Additional Context

            No response

            Metadata

            Metadata

            Assignees

            Labels

            bugSomething isn't working

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Packager silently excludes `*/agentcore/*` subpackages from deployment zip · Issue #902 · aws/agentcore-cli · GitHub
              Skip to content

              Packager silently excludes */agentcore/* subpackages from deployment zip #902

              Description

              @JamesSkinna

              Description

              Summary

              The agentcore deploy command produces a zip that is missing any Python package
              subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
              for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
              langgraph_checkpoint_aws/agentcore/.

              Affected versions

              ComponentVersion confirmed broken
              agentcore CLI0.9.1
              @aws/agentcore-cdk(bundled with CLI 0.9.1)
              langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

              Symptoms

              Lambda cold-start traceback in CloudWatch:

              File "/var/task/main.py", line 5, in <module>
              from langgraph_checkpoint_aws import AgentCoreMemorySaver
              File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
              from langgraph_checkpoint_aws.agentcore.saver import (
              ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
              

              The agent works correctly with agentcore dev (local Docker run) because the local
              .venv is intact. Only agentcore deploy is affected.

              Root cause

              The file responsible for building the deployment zip is:

              node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
              

              It contains a hardcoded exclusion set used by collectFilesSync when walking the
              staging directory to build the zip:

              // ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

              The intent of 'agentcore' is to prevent the project's own agentcore/ config
              directory from being bundled into the zip. However, the check is applied by
              entry name only at every level of the directory tree, not just at the root:

              for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
              ...
              }

              Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
              installed into the staging directory, it is silently dropped from the zip.

              The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

              fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

              So the deployed Lambda fails on import immediately at cold-start.

              Crucially, the agentcore/ project config directory is never present in the
              staging directory in the first place — only installed Python packages end up there.
              The exclusion is therefore both unnecessary and harmful.

              Suggested fix (upstream)

              Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
              project config directory is never present in the staging directory, so the entry
              serves no purpose and only causes harm.

               const EXCLUDED_ENTRIES = new Set([
              - 'agentcore',
              '.git',
              '.venv',
              '__pycache__',
              '.pytest_cache',
              '.DS_Store',
              'node_modules',
              ]);

              If the intent is to guard against the project config directory specifically, a
              safer alternative would be to only exclude entries at the top level of the
              staging directory walk, rather than recursively at every depth.

              Temporary local workaround

              This patch must be applied to the installed node_modules (it will be reverted by
              npm install — see re-application instructions below).

              File to edit:

              agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
              

              Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

               const EXCLUDED_ENTRIES = new Set([
              - 'agentcore',
              '.git',
              '.venv',

              After patching, delete the stale CDK output so CDK does not reuse the previously
              hashed (broken) zip, then redeploy:

              rm -rf agentcore/cdk/cdk.out
              agentcore deploy

              Verify the fix:

              unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
              # should now list: agentcore/saver.py, agentcore/store.py, etc.

              Re-applying the patch after npm install

              Running npm install inside agentcore/cdk/ will overwrite node_modules and
              lose the patch. Re-apply it with:

              sed -i """/'agentcore',/d" \
              agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
              rm -rf agentcore/cdk/cdk.out
              agentcore deploy

              Notes

              • This bug will affect any Python package that ships a subpackage named
                agentcore — not just langgraph-checkpoint-aws.
              • agentcore dev is unaffected because it mounts the local .venv directly.
              • The uv pip install step in the packager runs correctly and populates the
                staging directory with the full package including the agentcore/ subpackage.
                The bug is exclusively in the zip-creation step that follows.
              • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
                to confirm the package is installed correctly before the zip is built.

              Steps to Reproduce

              1. Create an AgentCore project using the CodeZip build type with Python 3.12.
              2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
              3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
              4. Run agentcore deploy.
              5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

              Verify the zip is broken before deploying:

              unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
              # produces no output — directory is absent from the zip

              Expected Behavior

              • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

              Actual Behavior

              Lambda cold-start traceback in CloudWatch:

              File "/var/task/main.py", line 5, in <module>
              from langgraph_checkpoint_aws import AgentCoreMemorySaver
              File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
              from langgraph_checkpoint_aws.agentcore.saver import (
              ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
              

              The agent works correctly with agentcore dev (local Docker run) because the local
              .venv is intact. Only agentcore deploy is affected.

              CLI Version

              0.9.1

              Operating System

              macOS

              Additional Context

              No response

              Metadata

              Metadata

              Assignees

              Labels

              bugSomething isn't working

              Type

              No type

              Projects

              No projects

                Milestone

                No milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Packager silently excludes `*/agentcore/*` subpackages from deployment zip · Issue #902 · aws/agentcore-cli · GitHub
                Skip to content

                Packager silently excludes */agentcore/* subpackages from deployment zip #902

                Description

                @JamesSkinna

                Description

                Summary

                The agentcore deploy command produces a zip that is missing any Python package
                subdirectory named agentcore, causing ModuleNotFoundError at Lambda cold-start
                for packages such as langgraph-checkpoint-aws >= 1.0.7 whose public API lives in
                langgraph_checkpoint_aws/agentcore/.

                Affected versions

                ComponentVersion confirmed broken
                agentcore CLI0.9.1
                @aws/agentcore-cdk(bundled with CLI 0.9.1)
                langgraph-checkpoint-aws1.0.7 (first version introducing the .agentcore subpackage)

                Symptoms

                Lambda cold-start traceback in CloudWatch:

                File "/var/task/main.py", line 5, in <module>
                from langgraph_checkpoint_aws import AgentCoreMemorySaver
                File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
                from langgraph_checkpoint_aws.agentcore.saver import (
                ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
                

                The agent works correctly with agentcore dev (local Docker run) because the local
                .venv is intact. Only agentcore deploy is affected.

                Root cause

                The file responsible for building the deployment zip is:

                node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
                

                It contains a hardcoded exclusion set used by collectFilesSync when walking the
                staging directory to build the zip:

                // ~line 31constEXCLUDED_ENTRIES=newSet(['agentcore',// <-- the problem'.git','.venv','__pycache__','.pytest_cache','.DS_Store','node_modules',]);

                The intent of 'agentcore' is to prevent the project's own agentcore/ config
                directory from being bundled into the zip. However, the check is applied by
                entry name only at every level of the directory tree, not just at the root:

                for(constentryofentries){if(EXCLUDED_ENTRIES.has(entry.name))continue;// skips ANY directory named 'agentcore' anywhere in the tree
                ...
                }

                Because langgraph_checkpoint_aws/agentcore/ is a legitimate Python subpackage
                installed into the staging directory, it is silently dropped from the zip.

                The langgraph_checkpoint_aws/__init__.py imports unconditionally from this subpackage:

                fromlanggraph_checkpoint_aws.agentcore.saverimportAgentCoreMemorySaverfromlanggraph_checkpoint_aws.agentcore.storeimportAgentCoreMemoryStore

                So the deployed Lambda fails on import immediately at cold-start.

                Crucially, the agentcore/ project config directory is never present in the
                staging directory in the first place — only installed Python packages end up there.
                The exclusion is therefore both unnecessary and harmful.

                Suggested fix (upstream)

                Remove 'agentcore' from EXCLUDED_ENTRIES in helpers.js. The agentcore/
                project config directory is never present in the staging directory, so the entry
                serves no purpose and only causes harm.

                 const EXCLUDED_ENTRIES = new Set([
                - 'agentcore',
                '.git',
                '.venv',
                '__pycache__',
                '.pytest_cache',
                '.DS_Store',
                'node_modules',
                ]);

                If the intent is to guard against the project config directory specifically, a
                safer alternative would be to only exclude entries at the top level of the
                staging directory walk, rather than recursively at every depth.

                Temporary local workaround

                This patch must be applied to the installed node_modules (it will be reverted by
                npm install — see re-application instructions below).

                File to edit:

                agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
                

                Remove 'agentcore', from the EXCLUDED_ENTRIES set (around line 32):

                 const EXCLUDED_ENTRIES = new Set([
                - 'agentcore',
                '.git',
                '.venv',

                After patching, delete the stale CDK output so CDK does not reuse the previously
                hashed (broken) zip, then redeploy:

                rm -rf agentcore/cdk/cdk.out
                agentcore deploy

                Verify the fix:

                unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
                # should now list: agentcore/saver.py, agentcore/store.py, etc.

                Re-applying the patch after npm install

                Running npm install inside agentcore/cdk/ will overwrite node_modules and
                lose the patch. Re-apply it with:

                sed -i """/'agentcore',/d" \
                agentcore/cdk/node_modules/@aws/agentcore-cdk/dist/lib/packaging/helpers.js
                rm -rf agentcore/cdk/cdk.out
                agentcore deploy

                Notes

                • This bug will affect any Python package that ships a subpackage named
                  agentcore — not just langgraph-checkpoint-aws.
                • agentcore dev is unaffected because it mounts the local .venv directly.
                • The uv pip install step in the packager runs correctly and populates the
                  staging directory with the full package including the agentcore/ subpackage.
                  The bug is exclusively in the zip-creation step that follows.
                • The staging directory at agentcore/.cache/<AgentName>/staging/ can be inspected
                  to confirm the package is installed correctly before the zip is built.

                Steps to Reproduce

                1. Create an AgentCore project using the CodeZip build type with Python 3.12.
                2. Add langgraph-checkpoint-aws==1.0.7 as a dependency in pyproject.toml.
                3. Import AgentCoreMemorySaver from langgraph_checkpoint_aws in main.py.
                4. Run agentcore deploy.
                5. Invoke the deployed agent — observe the ModuleNotFoundError in CloudWatch.

                Verify the zip is broken before deploying:

                unzip -l agentcore/cdk/cdk.out/asset.*.zip | grep langgraph_checkpoint_aws/agentcore
                # produces no output — directory is absent from the zip

                Expected Behavior

                • After deploying the Agent to AgentCore, there should be no 'ModuleNotFoundError'

                Actual Behavior

                Lambda cold-start traceback in CloudWatch:

                File "/var/task/main.py", line 5, in <module>
                from langgraph_checkpoint_aws import AgentCoreMemorySaver
                File "/var/task/langgraph_checkpoint_aws/__init__.py", line 9, in <module>
                from langgraph_checkpoint_aws.agentcore.saver import (
                ModuleNotFoundError: No module named 'langgraph_checkpoint_aws.agentcore'
                

                The agent works correctly with agentcore dev (local Docker run) because the local
                .venv is intact. Only agentcore deploy is affected.

                CLI Version

                0.9.1

                Operating System

                macOS

                Additional Context

                No response

                Metadata

                Metadata

                Assignees

                Labels

                bugSomething isn't working

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions