Hapi.js: Error: reply interface called twice?

is this error because the reply interface has been called many times in my code? It seems to me that the official documentation has imposed restrictions on this interface. How can we solve this error caused by multiple calls?

(node:5795) UnhandledPromiseRejectionWarning: Error: reply interface called twice
    at Object.exports.assert (/Users/labikemmy/Downloads/React-Native-FriendChat/api/node_modules/hoek/lib/index.js:736:11)
    at Function.internals.response (/Users/labikemmy/Downloads/React-Native-FriendChat/api/node_modules/hapi/lib/reply.js:164:10)
    at bound (domain.js:301:14)
    at Function.runBound (domain.js:314:12)
    at reply (/Users/labikemmy/Downloads/React-Native-FriendChat/api/node_modules/hapi/lib/reply.js:72:22)
    at bound (domain.js:301:14)
    at runBound (domain.js:314:12)
    at result.then (/Users/labikemmy/Downloads/React-Native-FriendChat/api/node_modules/hapi/lib/handler.js:105:36)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:228:7)
(node:5795) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5795) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
null

sample code:

export default async function (request, reply) {
  if (request.auth.credentials.email !== request.payload.email) {
    await User.findOne({ email: request.auth.credentials.email }).then(
      (user) => {
        if (user) {
          User.findOne({ email: request.payload.email }).then(
            (friend) => {
              if (friend) {
                const stringId = `${friend._id}`;
                const friendExists = user.friends.filter(f => `${f}` === stringId).length > 0;
                if (!friendExists) {
                  user.friends.push(friend);
                  user.save();
                  reply({ friend: { fullName: friend.fullName, _id: friend._id } });
                } else {
                  reply(Boom.conflict("You have added already this friend"));
                }
              } else {
                reply(Boom.notFound(`Friend ${request.payload.email} doesn"t exist`));
              }
            },
          );
        } else {
          reply(Boom.notFound("Cannot find user"));
        }
      },
    );
  } else {
    reply(Boom.conflict("Cannot add yourself as a friend"));
  }
}
Mar.12,2021
MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1b3ab7d-2c242.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1b3ab7d-2c242.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?