I created a function that fetches some data from the Appwrite database. When I alone test my website, it works nice and smoothly, very fast too. But whenever my friend I visit the website at the same time, it gets stuck either on my side or his, and after 15 seconds it results in an error.
An internal curl error has occurred within the executor! Error Msg: Operation timed out
The Appwrite instance is running on a DigitalOcean droplet.
How do I solve this issue? Thanks.
This is super weird.
I've had concurrent users on a self-hosted instance and even on cloud. Never had an issue with a function not executing 🤔
Could you share the code of your function?
Yeah I find it very weird too! But it's happening constantly, if there are two users the website is becoming unusable. This could be a problem with DigitalOcean too? I don't know.
Sure. Something like this:
const comment = JSON.parse(req.payload);
const commentDoc = {
questionId: comment.questionId,
body: comment.body,
by: req.variables["APPWRITE_FUNCTION_USER_ID"],
};
const response = await database.createDocument(
"643d4f079b55031ba6b6",
"646b45b9e454f1b4d1c4",
sdk.ID.unique(),
commentDoc,
[
// permissions
]
);
// Updating Question's Comment Count
const question = await database.getDocument(
"643d4f079b55031ba6b6",
"643d4f2cd70649dd9083",
comment.questionId
);
await database.updateDocument(
"643d4f079b55031ba6b6",
"643d4f2cd70649dd9083",
comment.questionId,
{ commentCount: question.commentCount + 1 }
);
// Creating Notification
if (question.askerId !== req.variables["APPWRITE_FUNCTION_USER_ID"]) {
const notification = {
for: question.askerId,
message: `${comment.by.name} has commented on your question.`,
read: false,
payload: question.$id,
type: "comment",
};
await database.createDocument(
"643d4f079b55031ba6b6",
"648f59f58faa3642c794",
sdk.ID.unique(),
notification,
[
// permissions
]
);
await database.updateDocument(
"643d4f079b55031ba6b6",
"643dbd7c35b3663184f3",
question.askerId,
{ newNotifications: true }
)
}
But, do note that this isn't the only function that fails. Smaller functions fail too.
is this code enclosed in a try-catch?
in that case, are all these functions enclosed in a try-catch?
Nope, it isn't. Would it help?
Worth a try!
- In the
catchblock, look for anAppwriteException. - Increase the function timeout to 5 minutes so it keep running and you will be able to see any errors that may occur.
Also, make sure to call res.json in the catch block before the return statement.
Okay trying both now! I shall let you know.
catch (AppwriteException e) {
res.json({
'message': e.message,
'status': 'failed'
});
}
an example ^
Recommended threads
- Excessive usage of cloud functions is sl...
I have made almost all my requests through cloud functions and jwt , due to security fears of a user editing a field he is not supposed to . This unfortunately...
- Dart Runtime as Function is missing
Hey guys, I set the _APP_FUNCTIONS_RUNTIMES to dart-3.10 and redeployed the appwrite stack but unfortunately the dart runtime doesnt show up. I copied the val...
- Go 1.25 runtime
So I'm trying to use go 1.25 for my functions and I can only find go-1.23 as a function runtime. So I did some searching and found https://github.com/appwrite/a...