I'm trying to upload files to Appwrite's storage bucket using the REST API, but I keep encountering the following error:
TypeScript
{
"message": "Param \"fileId\" is not optional.",
"code": 400,
"type": "general_argument_invalid",
"version": "1.6.1"
}
What I’ve Tried:
- I'm using a fileId generated by UUID.randomUUID() in Java, but I still get the error. Here's an example of the fileId I'm sending: 123e4567-e89b-12d3-a456-426614174000.
- I’ve also tried passing ID.unique() in the payload for fileId, but it doesn’t seem to work.
Here's my code;
TypeScript
public Map<String, Object> uploadFile(MultipartFile file) throws Exception {
String url = appwriteEndpoint + "/v1/storage/buckets/" + appwriteBucketId + "/files";
String fileId = UUID.randomUUID().toString().replace("-", "").substring(0, 36);
Map<String, Object> operations = new HashMap<>();
operations.put("query", "mutation CreateFile($bucketId: String!, $fileId: String!, $file: InputFile!) { storageCreateFile(bucketId: $bucketId, fileId: $fileId, file: $file) { id } }");
Map<String, Object> variables = new HashMap<>();
variables.put("bucketId", appwriteBucketId);
variables.put("fileId", fileId);
variables.put("file", null);
operations.put("variables", variables);
// Build multipart request here (details omitted for brevity)...
}
Questions:
- Are there additional constraints for the fileId parameter that I might be missing?
- Is there something wrong with the way I’m structuring the multipart/form-data payload?
- How should ID.unique() be handled if passed programmatically via REST?
TL;DR
Issue: Developers facing an error message stating "Param 'fileId' is not optional" when trying to upload files to Appwrite's storage bucket via the REST API.
Solution:
1. Ensure the fileId for the file is properly generated, try using UUID.randomUUID().toString() without modification.
2. Check if the multipart/form-data payload structure aligns with Appwrite's requirements.
3. Handle ID.unique() appropriately when passing it programmatically via REST to avoid errors.Recommended threads
- Function connected custom domain error: ...
My domain is served through Cloudflare. Domain is now connected with the appwrite function. But when accessing the domain, I get the below error. Any suggestion...
- Error | general_unknown
I have built a website using Appwrite Cloud as backend, and also using sites for deployment. My website is live but sometimes it shows Appwrite's Error general_...
- Introducing new string column types made...
Adding new string types is hugely bennificial! Unfortunately it made the current column types not editable to change their types to the new longer field types.