Need Urgent Help: Facing Multiple Critical Bugs with My Anna App Build related to host.upload permission

Hey @Munish! :waving_hand: Great debugging work — you actually diagnosed this exactly right, so let me confirm it and point you to the fastest path forward. :bullseye:

Why you’re seeing no Executa Agent is currently online :magnifying_glass_tilted_left:

You nailed it here:

So Anna doesn’t host Python executas server-side. The executa needs binary distribution (binary_urls) to run on users’ machines.

That’s 100% correct. Today, Anna does not auto-run your Python executa on our servers. An executa is an independent process that the Agent starts on a machine and talks to over stdio JSON-RPC. Your run log saying pkg=x, binary_urls=x is the real signal — the tool was cut at v0.1.0 with empty distribution metadata, so Anna Agent has nothing installable. That’s why no agent ever comes online, and it’s unrelated to your app version. :white_check_mark:

The fix: configure binary distribution :package:

Your executa.json currently only has a local run command (perfect for dev, not for prod). For production you need a per-platform binary that the Agent can download, extract, and launch.

We just published a full hands-on, step-by-step guide that walks through exactly this — PyInstaller → .tar.gz → GitHub Release → binary_urls:

:backhand_index_pointing_right: Don’t Just Run Locally: Packaging Anna Executa as a Releasable Binary

The short version:

  1. :hammer: Build a PyInstaller binary of your executa (CI builds one per platform — PyInstaller can’t cross-compile)
  2. :up_arrow: Upload the .tar.gz assets to a GitHub Release in your own fork
  3. :link: In the Tool config (More → Advanced → Executa), set Distribution Type = Binary and add the per-platform download URLs (darwin-arm64, darwin-x86_64, linux-x86_64)
  4. :repeat_button: On your Agent (More → Agents), click Install Essentials — Details should then show Binary / Running

One thing to double-check from the guide: make sure your archive’s manifest.json entrypoint points to the real path inside the archive (e.g. bin/<tool_id>), and that the binary answers describe over stdio before you ship it. :test_tube:

On Manim + LaTeX / ffmpeg / Cairo :clapper_board:

Good question — for heavy system dependencies, --onedir is the better choice over --onefile: faster cold start, easier to inspect, and far fewer “missing dylib” surprises. The archive layout in the guide (bin/, plus optional lib/, data/) is designed exactly for this multi-file case. A couple of practical notes:

  • :puzzle_piece: Pure-Python deps bundle cleanly with PyInstaller.
  • :gear: True system binaries like ffmpeg and a LaTeX toolchain are large and not Python packages — the most reliable approach is to ship/locate the binaries your tool shells out to (bundle ffmpeg in your archive and point to it; document/guard the LaTeX requirement) rather than expecting PyInstaller to capture them automatically.

About a server-side runtime :cloud:

You mentioned wanting Anna to run the executa server-side — that’s coming! We’re rolling out Cloud Agents (a hosted, server-side runtime for executas) within the next ~2 weeks. :rocket: That will give you a path where heavy executas can run on Anna-managed infrastructure instead of every user’s machine. For your current submission deadline, binary distribution is the supported route today and will keep working great alongside Cloud Agents once it lands.

Quick note on the host.upload 403 :locked_with_key:

The APP_NOT_GRANTED: upload_grant not enabled you hit locally is a separate permission-grant issue from the distribution problem above — once your tool actually comes online via binary, grant host.upload to the app and that path should clear. If it still trips after that, drop the exact CLI/runtime versions in a reply and we’ll dig in. :hammer_and_wrench:

You’re very close — getting binary_urls populated is the missing piece. Ping us here if Details still shows Not Installed after configuring, and share the platform key + the URL you used so we can spot any mismatch. You’ve got this! :flexed_biceps::sparkles: