Hi @77s—it looks like you’re running this with fly machines exec?
If so, then I think that the problem is that fly machines exec takes a raw command name and arguments. In this case, it’s running ./program with < and input.txt as arguments. It does not pass the command along to a shell (some minimal container images might not include a shell!) which would interpret the redirect.
If your image does contain a shell, then you can probably invoke it directly. E.g. if sh is available, you can try: