
I am encountering a problem where environment variables are unexpectedly modified at runtime on my Appwrite server (version 1.6.0) hosted at https://custom-domain.tld. Here is the JavaScript configuration I'm using:
const client = new Client()
.setEndpoint(process.env.APPWRITE_FUNCTION_API_ENDPOINT)
.setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID)
.setKey(process.env.APPWRITE_FUNCTION_API_KEY);
The environment variable for the API endpoint is set as follows:
APPWRITE_FUNCTION_API_ENDPOINT="https://custom-domain.tld/v1"
Despite being correctly configured on the server, APPWRITE_FUNCTION_API_ENDPOINT
changes to https:///v1
during runtime.
Using a hardcoded endpoint avoids this issue:
const client = new Client()
.setEndpoint("https://custom-domain.tld/v1")
.setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID)
.setKey(process.env.APPWRITE_FUNCTION_API_KEY);
Additionally, there was a protocol issue where, despite the endpoint protocol being set to https
, it appeared to operate over http
internally. I resolved this by enforcing HTTPS in the Appwrite environment settings:
_APP_OPTIONS_FORCE_HTTPS=enabled
I'm sharing this issue to find out if this behavior is intentional or if I might have misconfigured or misunderstood something. Any insights or similar experiences would be greatly appreciated.
Thanks a lot! ❤️

are you setting that environment variable inside the appwrite console?

i am setting it via the functions > settings > Environment variables:

I'm wondering if the issue is coming up because that environment variable is kinda like a reserved word and set automatically.

on local development it is set via the .env file and it is working fine

If you change it to something else, does it still get overwritten?

That environment variable is one that is set by appwrite at runtime, off the top of my head I don't know exactly how locally run functions work, but on the platform it's set. Could you see if changing it has any effect?
https://appwrite.io/docs/products/functions/develop#environment-variables

for me it looks like, that there is internally a function that wants to clear some parts like the protocol and if it is like the same host it tries to use just the short local url

ok, i understand, if this variable is available during runtime, this will not be overwritten by my .env, because it wants to use the internal one

i will test it tomorrow, if it will change with a different naming of the env variable
Recommended threads
- Selfhosting problem
I'm migrating from cloud to self-hosted. I tried using 'Export to self-hosted instance' and use my free Ngrok domain as Endpoint self-hosted instance, but I got...
- Direct Upgrade from Appwrite v1.5.11 to ...
I'm on Appwrite v1.5.11. Can I upgrade directly to v1.6.2?
- error code:524 for functions running lon...
We are having this issue, no longer the function runtime or code, if it goes longer than 1 minute, there's no logs at all, just this error: **error code: 524**
