تراجع يتسبب في إرسال إشعارات بريد إلكتروني خاطئة وغير صحيحة لجميع المستخدمين في قائمة انتظار الموافقة لأكثر من 60 يومًا

في Discourse، يمكنك تحديد وضع يتم فيه إنشاء حسابات المستخدمين عند التسجيل، ولكن يجب أن يوافق عليها أحد أعضاء الفريق قبل تفعيل الحساب. هذا شائع في المواقع القائمة على الاشتراكات، على سبيل المثال.

كان هناك جانبان مهمان لطريقة عمل ذلك:

  1. لم تُرسل أبدًا إشعارات سلبية عندما يرفض الأعضاء حسابات، بل تم إرسال إشعار إيجابي واحد فقط عند موافقة الأعضاء على الحسابات.

  2. أي عنصر في قائمة المراجعة، سواء كان منشورًا أو حسابًا، سيتم رفضه تلقائيًا بعد 60 يومًا إذا لم يتخذ المشرف أي إجراء بشأن العنصر في قائمة المراجعة خلال تلك الفترة. وقد وُجد هذا في العديد من الإصدارات السابقة من Discourse، حيث تم اختيار هذا المسار ليكون “آمنًا افتراضيًا”.

للأسف، عندما أضفنا ميزة جديدة مُطلَبة لإخبار المستخدمين بالسبب وراء رفضهم، لم ندرك أن الجمع بين النقطتين السابقتين سيؤدي إلى إرسال إشعارات سلبية فردية إلى جميع المستخدمين الذين كانوا موجودين في قائمة الموافقة لأكثر من 60 يومًا!

تبدو إشعارات البريد الإلكتروني هذه على النحو التالي:

وتقول، تحت هوية العلامة التجارية للعميل:

رفض عضو في الفريق حسابك على {brand}.

إن إرسال هذه الرسالة إلى العديد من الحسابات “المرفوضة” قد تسبب في مشاكل لعملائنا المستضافين. نحن نأسف بعمق عن هذا الخطأ — فهو خطأنا بالكامل في Discourse، وكل اللوم يجب أن يقع علينا.

نعمل حاليًا مع عملائنا على بذل كل ما في وسعنا لتصحيح الأمر.

نود أن نكون واضحين تمامًا بأن هذا خطأ منا وأرسلنا بريدًا إلكترونيًا مربكًا وسوء صياغة إلى الكثير من عملائهم، مما أدى إلى اضطراب كبير، وربما حتى فقدان الإيرادات بسبب إلغاء العملاء لاشتراكاتهم. نحن نأسف بشدة لهذا، وأقل ما يمكننا فعله هو إخبار الجميع بأن هذه مشكلة في Discourse، حيث أرسلنا نحن في Discourse ذلك البريد الإلكتروني السلبي بشكل خاطئ. نحن مسؤولون تمامًا عن هذا الخطأ وعواقبه. إذا تلقيت ذلك البريد الإلكتروني، فهو ليس بسبب خطأ أي شخص غيرنا — في Discourse.

نحن ندرك مدى خطورة هذا الأمر. نواصل العمل عن كثب مع مزود العضوية وعملائنا المتضررين لتحمل مسؤولية أفعالنا وتحسين الأمور حتى لا يحدث هذا مرة أخرى.

نقدم أيضًا شهرًا مجانيًا من استضافة هذا العميل كتعويض عن المشاكل التي سببناها. نعتذر بصدق عن الخطأ والطريقة التي أثرت بها على عملائنا. سنقوم بالتأكيد بمراجعة عملياتنا للتأكد من أن هذا النوع من المشاكل أقل احتمالية للحدوث في المستقبل.

جيف أتوود
الرئيس التنفيذي، Discourse

28 إعجابًا

إليك ما قمنا به لإصلاح المشكلة ومنع تكرارها:

هذا التعديل يجمع بين ثلاث إصلاحات في واحد، حيث حلّ ثلاث مشكلات أدت إلى هذه الخلل وعاقبتنا عن تحديد السبب الجذري بسرعة.

  1. تأكدنا من عدم حذف “سجلات البريد الإلكتروني” عند حذف حساب مستخدم. لو كانت لدينا سجلات بريد إلكتروني للمستخدمين المحذوفين، لكان بإمكاننا رؤية جميع رسائل الرفض المرسلة بسرعة.

  2. أجبنا على ضرورة تحديد “السياق” بشكل صحيح في كل مكان في الكود يتم فيه حذف مستخدم، حتى نتمكن من تحديد مكان وسبب حذف المستخدم بوضوح. كانت هناك عدة أماكن في الكود لم يتم فيها تحديد السياق، مما منعنا من معرفة سبب حذف هؤلاء المستخدمين واضطررنا إلى البحث في الكود لفهم الأمر.

  3. أصلحنا الخلل الفعلي ولن يتم إرسال رسائل رفض إلى المستخدمين الذين تم حذفهم تلقائيًا من قائمة المراجعة بعد الآن.

صُحبت جميع هذه التغييرات باختبارات لضمان عدم حدوث انتكاسة مستقبلية.

18 إعجابًا