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
- Self-Hosted and Multi Region support
Hey Appwrite Team, As a test and to expand self-hosted capabilities even more, i was thinking of understanding and testing how to deploy a multi-region instanc...
- Function's Static IP
Is it possible to have static. IP Address instead of Dynamic IP for getting the IP Address whitelist
- How to use dart workspaces to deploy a f...
Hello, I'm developing a Flutter application and I would like to leverage dart pub workspaces to deploy a function with a dart runtime as advertised here : http...