#Error on upload file "Param "fileId" is not optional" via appwrite node.js function

2 messages · Page 1 of 1 (latest)

blazing sage
#

Hey everyone,
I am using appwrite version 1.6.0 self-hosted with coolify. I want to switch back to the cloud env but at the moment we are in a concept phase and we are enjoying the self-hosted testing-env.

If I call createFile in my appwrite Node.js function I get this "required" parameter error.

Error: Param "fileId" is not optional.
    at Client.call (/usr/local/server/src/function/node_modules/node-appwrite/lib/client.js:206:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async uploadChunk (/usr/local/server/src/function/node_modules/node-appwrite/lib/services/storage.js:383:24)
    at async Storage.createFile (/usr/local/server/src/function/node_modules/node-appwrite/lib/services/storage.js:417:13)
    at async Module.default (file:///usr/local/server/src/function/src/main.js:119:24)
    at async execute (/usr/local/server/src/server.js:208:16)
    at async action (/usr/local/server/src/server.js:225:7)
    at async /usr/local/server/src/server.js:14:5

If I execute the function in the appwrite cloud env or if I start the appwrite function locally with my self-hosted endpoint everything works. createFile called from the web-js-sdk with Nuxt also works fine. I found some threads in Discord and on the appwrite forum but nothing gave me hints what to do. It breaks the moment I try to call it from the appwrite function on the self-hosted vps.

Thank you very much. Appwrite seems to be able to empower a two-man team to build some amazing things.

#

My Node.js appwrite function that works in appwrite cloud and appwrite self-hosted locally. I am calling OpenAi and I am trying to save the output mp3. As I said in appwrite cloud and selfhosted started locally everything works.

const mp3 = await openai.audio.speech.create({
      model: 'tts-1-hd',
      voice: 'nova',
      input: text,
    });
    const audioBuffer = Buffer.from(await mp3.arrayBuffer());
    log('Audio buffer generated. Buffer length:', audioBuffer.length);

    // Wrap the complete audio Buffer as a finished file using InputFile.fromBuffer().
    const fileName = `audio-${Date.now()}.mp3`;
    const inputFile = InputFile.fromBuffer(audioBuffer, fileName);
    log('InputFile created:', inputFile);

    // Upload the file to Appwrite Storage.
    const storage = new Storage(client);
    const audioBucketId = '67a8bcee000574f3c17f';
    if (!audioBucketId) {
      error('Audio bucket id is not configured.');
      return res.json({ error: 'Audio bucket id is not configured.' });
    }

    const fileResult = await storage.createFile(
      audioBucketId,
      ID.unique(),
      inputFile
    );
    log('Audio file uploaded successfully:', fileResult);
    ```
Notes:
Because of some coolify issues (https://github.com/coollabsio/coolify/issues/3718) I am not able to call the function via the subdomain (But this should not be a issue, right?).
GitHub

Error Message and Logs The function domain generated using the GitHub integration is not correct. As you can see, it adds the function id before the Appwrite domain. Steps to Reproduce Create a fun...