Bug: sam build - AttributeError
Description:
I am unable to run any sort of AWS SAM commands from shell
Steps to reproduce:
I tried removing all components and installing everything from scratch, but the error persists. I am fairly new to Mac OS so I'm curious if I missed or misconfigured anything from my end as well.
Observed result:
make deploy-infra
sam build && aws-vault exec awskc --no-session -- sam deploy
Starting Build use cache
2025-04-03 16:59:28 Plugin 'ServerlessAppPlugin' raised an exception: 'NoneType' object has no attribute 'get'
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/sam_plugins.py", line 130, in act
getattr(plugin, method_name)(*args, **kwargs)
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/metrics/method_decorator.py", line 117, in wrapper_cw_timer
exec_result = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/application/serverless_app_plugin.py", line 125, in on_before_transform_template
for logical_id, app in template.iterate({SamResourceType.Application.value}):
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/template.py", line 34, in iterate
resource = SamResource(resource_dict)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/resource.py", line 26, in init
self.type = resource_dict.get("Type")
^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
Error: 'NoneType' object has no attribute 'get' Traceback: File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 1082, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 1697, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 1443, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 788, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/cli/cli_config_file.py", line 347, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/decorators.py", line 92, in new_func return ctx.invoke(f, obj, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 788, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/telemetry/metric.py", line 185, in wrapped raise exception # pylint: disable=raising-bad-type ^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/telemetry/metric.py", line 150, in wrapped return_value = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/utils/version_checker.py", line 43, in wrapped actual_result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/cli/main.py", line 95, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/command.py", line 172, in cli do_cli( File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/command.py", line 239, in do_cli with BuildContext( File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/build_context.py", line 189, in enter self.set_up() File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/build_context.py", line 195, in set_up self._stacks, remote_stack_full_paths = SamLocalStackProvider.get_stacks( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/providers/sam_stack_provider.py", line 270, in get_stacks current = SamLocalStackProvider( ^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/providers/sam_stack_provider.py", line 62, in init self._template_dict = self.get_template( ^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/providers/sam_base_provider.py", line 193, in get_template template_dict = SamTranslatorWrapper(template_dict, parameter_values=parameters_values).run_plugins() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/samlib/wrapper.py", line 73, in run_plugins parser.parse(template_copy, all_plugins) # parse() will run all configured plugins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/samlib/wrapper.py", line 130, in parse sam_plugins.act(LifeCycleEvents.before_transform_template, sam_template) File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/sam_plugins.py", line 136, in act raise ex File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/sam_plugins.py", line 130, in act getattr(plugin, method_name)(*args, **kwargs) File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/metrics/method_decorator.py", line 117, in wrapper_cw_timer exec_result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/application/serverless_app_plugin.py", line 125, in on_before_transform_template for logical_id, app in template.iterate({SamResourceType.Application.value}): File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/template.py", line 34, in iterate resource = SamResource(resource_dict) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/resource.py", line 26, in init self.type = resource_dict.get("Type") ^^^^^^^^^^^^^^^^^
An unexpected error was encountered while executing "sam build". Search for an existing issue: https://github.com/aws/aws-sam-cli/issues?q=is%3Aissue+is%3Aopen+Bug%3A%20sam%20build%20-%20AttributeError Or create a bug report: https://github.com/aws/aws-sam-cli/issues/new?template=Bug_report.md&title=Bug%3A%20sam%20build%20-%20AttributeError make: *** [deploy-infra] Error 1
Expected result:
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
- OS: Sequoia 15.4, on Apple M1
sam --version: 1.136.0- AWS region: us-east-1
# Paste the output of `sam --info` here
{
"version": "1.136.0",
"system": {
"python": "3.12.2",
"os": "macOS-15.4-arm64-arm-64bit"
},
"additional_dependencies": {
"docker_engine": "Not available",
"aws_cdk": "2.1007.0 (build d3f6c3c)",
"terraform": "Not available"
},
"available_beta_feature_env_vars": [
"SAM_CLI_BETA_FEATURES",
"SAM_CLI_BETA_BUILD_PERFORMANCE",
"SAM_CLI_BETA_TERRAFORM_SUPPORT",
"SAM_CLI_BETA_RUST_CARGO_LAMBDA"
]
}
Add --debug flag to command you are running
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
Reading makefiles...
Updating goal targets....
File deploy-infra' does not exist. Must remake target deploy-infra'.
sam build && aws-vault exec awskc --no-session -- sam deploy
Starting Build use cache
2025-04-03 17:03:37 Plugin 'ServerlessAppPlugin' raised an exception: 'NoneType' object has no attribute 'get'
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/sam_plugins.py", line 130, in act
getattr(plugin, method_name)(*args, **kwargs)
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/metrics/method_decorator.py", line 117, in wrapper_cw_timer
exec_result = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/application/serverless_app_plugin.py", line 125, in on_before_transform_template
for logical_id, app in template.iterate({SamResourceType.Application.value}):
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/template.py", line 34, in iterate
resource = SamResource(resource_dict)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/resource.py", line 26, in init
self.type = resource_dict.get("Type")
^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
Error: 'NoneType' object has no attribute 'get' Traceback: File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 1082, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 1697, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 1443, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 788, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/cli/cli_config_file.py", line 347, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/decorators.py", line 92, in new_func return ctx.invoke(f, obj, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/click/core.py", line 788, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/telemetry/metric.py", line 185, in wrapped raise exception # pylint: disable=raising-bad-type ^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/telemetry/metric.py", line 150, in wrapped return_value = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/utils/version_checker.py", line 43, in wrapped actual_result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/cli/main.py", line 95, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/command.py", line 172, in cli do_cli( File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/command.py", line 239, in do_cli with BuildContext( File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/build_context.py", line 189, in enter self.set_up() File "/opt/anaconda3/lib/python3.12/site-packages/samcli/commands/build/build_context.py", line 195, in set_up self._stacks, remote_stack_full_paths = SamLocalStackProvider.get_stacks( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/providers/sam_stack_provider.py", line 270, in get_stacks current = SamLocalStackProvider( ^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/providers/sam_stack_provider.py", line 62, in init self._template_dict = self.get_template( ^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/providers/sam_base_provider.py", line 193, in get_template template_dict = SamTranslatorWrapper(template_dict, parameter_values=parameters_values).run_plugins() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/samlib/wrapper.py", line 73, in run_plugins parser.parse(template_copy, all_plugins) # parse() will run all configured plugins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samcli/lib/samlib/wrapper.py", line 130, in parse sam_plugins.act(LifeCycleEvents.before_transform_template, sam_template) File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/sam_plugins.py", line 136, in act raise ex File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/sam_plugins.py", line 130, in act getattr(plugin, method_name)(*args, **kwargs) File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/metrics/method_decorator.py", line 117, in wrapper_cw_timer exec_result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/plugins/application/serverless_app_plugin.py", line 125, in on_before_transform_template for logical_id, app in template.iterate({SamResourceType.Application.value}): File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/template.py", line 34, in iterate resource = SamResource(resource_dict) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/lib/python3.12/site-packages/samtranslator/sdk/resource.py", line 26, in init self.type = resource_dict.get("Type") ^^^^^^^^^^^^^^^^^
An unexpected error was encountered while executing "sam build". Search for an existing issue: https://github.com/aws/aws-sam-cli/issues?q=is%3Aissue+is%3Aopen+Bug%3A%20sam%20build%20-%20AttributeError Or create a bug report: https://github.com/aws/aws-sam-cli/issues/new?template=Bug_report.md&title=Bug%3A%20sam%20build%20-%20AttributeError make: *** [deploy-infra] Error 1
Sorry for the delay in the response. Did you figure this out?
Based on the error
self.type = resource_dict.get("Type")
^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
From the error it looks like you might have a resource without any values inside. Something like this myFunction:
Resources:
myFunction:
myOtherFunction:
Type: AWS::Serverless::Function
Properties:
...
Make sure that your SAM template is correctly written. If your template seems correct, please share an example, so we can try to reproduce the issue.