Skip to content

MacOS Arm64 Exec Format Error #134

Closed

Description

@kferrone

I am on a Mac arm64. I followed arm64 instructions and I still get

cannot execute binary file: Exec format error

Just out of curiosity, I tried with the amd64 instructions, still the same error. How is it even possible that I get the famous wrong architecture error on both?

Activity

  1. valerena commented on Sep 26, 2024

    @valerena
    Contributor

    This depend a lot on what you're invoking and how (and where too). What command are you trying to run?

    If you have a zip Lambda function (not a container image function), it's better to use AWS SAM CLI (which uses this Lambda RIE behind the scenes), instead of manually use RIE directly.

  2. skyzyx commented on Dec 27, 2024

    @skyzyx

    README instructions are bad. They only compile for Linux (ELF), not macOS (Mach-O).

    Running into the same issue while trying to run a Lambda function through Go's debugger. Looks like I'll have to clone, patch some files, then compile locally. :/

  3. ricardocermeno commented on Mar 26, 2025

    @ricardocermeno

    @skyzyx I have the same problem, Could you share me, how do you solved it? Did you recompiled it to Match-O ? or Did you did some workaround?

    Thanks in advance!

  4. roger-zhangg commented on Sep 16, 2025

    @roger-zhangg
    Member

    Thanks for the feedback, we are updating the Readme to make it clear the "installation" is only meant for downloading the binary to be used in a linux container.

  5. roger-zhangg commented on Sep 16, 2025

    @roger-zhangg
    Member

    Merged #152

  6. skyzyx commented on Sep 17, 2025

    @skyzyx

    @ricardocermeno asked:

    @skyzyx I have the same problem, Could you share me, how do you solved it? Did you recompiled it to Match-O ? or Did you did some workaround?

    Thanks in advance!

    This software is low, low, low-fi. You need to do more work to make it into something genuinely useful.

    1. In my Dockerfile, I download the latest release as part of building an image.

    2. However, when I sent traffic to it, it only handles a single request at a time. So I had to configure my Docker Compose definition to spawn 10 copies of the image to simulate being able to send multiple requests at a time to a Lambda endpoint.

    3. Then I discovered that this only exposes the low-level interface for how things work inside the Lambda service, not how you would expect it to work when you deploy your Lambda function and expose it with an endpoint. So I had to write a small, simple reverse-proxy app that receives my payload from curl or a web browser, then converts it into the format that RIE expects, let RIE execute my Lambda code, then capture its response and convert it back to what curl or a web browser would actually expect.

    In the end, this works OK for a local development environment for working on Lambda functions, as long as you're comfortable with the low-level Lambda interfaces, Docker Desktop, Docker Compose, Go, and probably a few other things I can't recall now.

    I'm also using a Traefik container to help route dev endpoints and ports around on my local machine to better simulate having the website and endpoints deployed. But this is entirely optional for whatever your use-case is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions