I have followed the same way in order to receive the Gmail changes notification through Pub/Sub by calling watch() everyday as mentioned in the documentation.
It works fine for the first day but after one or two days i stop receivig the notification of the changes in Gmail even though i renew watch() everyday.
And there are no error logs as well, every time i renew it i get the success response.
const watchResponse = await gmailUser.watch({
userId: `me`,
requestBody: {
topicName: `xyz`, // Cloud Pub/Sub topic
},
});