Похоже, что когда вы проверяете вложение, вы возвращаетесь, если вложение найдено, что, я предполагаю, не является предполагаемым поведением. Если вы получите сообщение с вложением, оно вернется, но если вложения нет, встраивание будет отправлено с (несуществующим) изображением. Вы видите проблему?
Чтобы исправить это, все, что вам нужно сделать, это изменить if(msg.attachments.length >= 1)return
на что-то вроде if (msg.attachments.length < 1) return;
Теперь, когда вы отправляете сообщение без каких-либо вложений, оно будет просто вернитесь, не пытаясь получить доступ к свойству url
несуществующего вложения.