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
- Error upgrading from 1.8.1 to 1.9.0
DO Self-hosted server failed to upgrade with this error "Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.42". U...
- MariaDB refuses to connect to appwrite
Earlier, I tried updating my Appwrite version from 18.1.x to the latest release because my Flutter package required it to function properly. I used the official...
- executeFunction intermittently throws Fo...
Environment: Flutter app using the Appwrite Flutter SDK, calling executeFunction for [describe endpoint, e.g. live-stream-related function]. *Description*: Int...