Question: I am trying to use the SAM CLI on my M1 Mac. I followed the steps outlined in these docs: sam init cd sam-app sam build sam deploy --guided  I did not modify the code or the yaml files. I can start the local Lambda function as expected: ➜ sam-app sam local start-api Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET] You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart SAM CLI if you update your AWS SAM template 2023-01-23 17:54:06 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)  But as soon as I hit the endpoint by doing: curl http://localhost:3000/hello  The Lambda RIE starts throwing errors and returns a 502. Invoking app.lambda_handler (python3.9) Image was not found. Removing rapid images for repo public.ecr.aws/sam/emulation-python3.9 Building image................... Failed to build Docker Image NoneType: None Exception on /hello [GET] Traceback (most recent call last): File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/flask/app.py", line 2073, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/flask/app.py", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/flask/app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/flask/app.py", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/local/apigw/local_apigw_service.py", line 361, in _request_handler self.lambda_runner.invoke(route.function_name, event, stdout=stdout_stream_writer, stderr=self.stderr) File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/commands/local/lib/local_lambda.py", line 137, in invoke self.local_runtime.invoke( File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/lib/telemetry/metric.py", line 315, in wrapped_func return_value = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/local/lambdafn/runtime.py", line 177, in invoke container = self.create(function_config, debug_context, container_host, container_host_interface) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/local/lambdafn/runtime.py", line 73, in create container = LambdaContainer( ^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/local/docker/lambda_container.py", line 93, in __init__ image = LambdaContainer._get_image( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/local/docker/lambda_container.py", line 236, in _get_image return lambda_image.build(runtime, packagetype, image, layers, architecture, function_name=function_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/local/docker/lambda_image.py", line 164, in build self._build_image( File "/opt/homebrew/Cellar/aws-sam-cli/1.70.0/libexec/lib/python3.11/site-packages/samcli/local/docker/lambda_image.py", line 279, in _build_image raise ImageBuildException("Error building docker image: {}".format(log["error"])) samcli.commands.local.cli_common.user_exceptions.ImageBuildException: Error building docker image: The command '/bin/sh -c mv /var/rapid/aws-lambda-rie-x86_64 /var/rapid/aws-lambda-rie && chmod +x /var/rapid/aws-lambda-rie' returned a non-zero code: 1  I found this Github issue where someone recommended to do the following:  docker run --rm --privileged multiarch/qemu-user-static --reset -p yes  But it yielded no results. Does anyone know what I'm doing wrong, or how to resolve this issue so the docker container can build correctly? Thanks.

Answer: In your template.yaml, change the following lines from  Architectures: - x86_64  to  Architectures: - arm64  The reason why this works is that sam init defaults to the x86_64 architecture. Since you have an M1 Mac, performance will be better with a Docker image for the arm64 architecture. You can tell this is the case as well by looking at the error message which mentions aws-lambda-rie-x86_64. For the M1 Mac, you'll need aws-lambda-rie-arm64 which it will find once you change those lines above and then re-run your sam commands. Alternatively, if you want to start from scratch you can pass the -a parameter to specify the architecture like so: sam init -a arm64 and that will fix your problem as well. Note that this will have a side-effect of deploying your Lambda function onto arm64 in AWS utilizing Graviton processors. If you don't want that, you can look try other workarounds in https://github.com/aws/aws-sam-cli/issues/3891