Appwrite runtime doesn't seem to support Stream, even though open-runtime does
- 0
- Self Hosted
- Functions

Here's the function code, I kept it as small as possible: https://github.com/verydanny/hooks/blob/main/hooks/hello-world/src/main.js
I reproduced my code using open-runtime - node-21.0
and had no issues rendering content on the page, and no hangups. I did this because I thought the issue was with open-runtime
somewhere.
When using Appwrite with node-21.0
, it hangs indefinitely and shows the following error in the console:
openruntimes-executor |
openruntimes-executor | Warning: Undefined array key "listening" in /usr/local/app/http.php on line 1023
openruntimes-executor |
openruntimes-executor | Warning: fsockopen(): Unable to connect to 6666003e27327:3000 (Connection refused) in /usr/local/src/Executor/Validator/TCP.php on line 45
openruntimes-executor |
openruntimes-executor | Warning: fsockopen(): Unable to connect to 6666003e27327:3000 (Connection refused) in /usr/local/src/Executor/Validator/TCP.php on line 45
I tracked the issue down to Readable.from()
. Basically, with Appwrite, I can only send a Stream
if it's a non-text MIME format, but as soon as it's JSON, HTML, or anything text-based it makes Appwrite hang forever.
This shouldn't be the case because html/txt should be streamable as well. I'm trying to build a mini router for functions, and it adds complexity and decreases performance if I have to check every file's MIME format and do response.text()
for everything that's non-binary data.
Buffer.from
works, but that would make the memory usage go up like crazy depending on the file being sent.

I think I tracked the issue to needing a Content-Length
header, but this shouldn't be required. It seems to only be required in the appwrite context.
Recommended threads
- Having errors migrating to cloud
Project will not migrate compeltely
- ENV vars not updating
When i do `nano .env` it shows `_APP_DOMAIN_TARGET=` as set to my domain, but when i do `docker compose exec appwrite vars` it shows `_APP_DOMAIN_TARGET=` as ...
- Index with the requested key already exi...
I'm using appwrite cli to create DB and I'm getting index_already_exists Is there a way to undestand the index name and maybe to skip if it's already exits?
