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
- Broken Appwrite can’t make functions nor...
Hii guys, I was having this issue with my locally hosted Appwrite, I can’t create functions ( both template and manual), I can’t make a custom domain ( like in ...
- Tips for Debugging Appwrite Functions Lo...
Hi everyone! 👋 I have an Appwrite Function running locally with Docker, but I’m struggling to debug it because execution doesn’t reach the breakpoints I set. ...
- AttributeError: 'Context' object has no ...
I'm getting an error executing my function. I'm not able to replicate this locally since I have to use a mock context. Is there a way to debug this kind of erro...