# خطأ في صفحة الدعوات - "لا يمكن قراءة خصائص غير محددة (قراءة 'slice')"

**URL:** https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879
**Category:** Bug
**Tags:** fixed
**Created:** [27 أكتوبر 2025، 10:03م UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879 "2025-10-27T22:03:30Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![bdfl](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@bdfl](https://meta.discourse.org/u/bdfl)
#### Post date: [27 أكتوبر 2025، 10:03م UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/1 "2025-10-27T22:03:30Z")

</div>

على أحدث إصدار مستقر، أرى خطأ JavaScript عند النقر فوق الزر “إنشاء رابط دعوة” في /u/user\_name/invited/pending.  
تُظهر وحدة التحكم:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘slice’)  
at h.shortKey (chunk.f105ceace2ad381ddb2f.d41d8cd9.js:241:61588)

إذا تم عرض كائن الدعوة قبل أن يتم ملء invite\_key من الخادم، فإن invite\_key يكون غير معرف ويتعطل عند استخدام .slice() على لا شيء.  
في invite.js، تحاول الدالة shortKey اختصار مفتاح دعوة:

```javascript
shortKey(key) {
return key.slice(0, 4) + “…”;
}

```

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

```javascript
return key ? key.slice(0, 4) + “…” : “”;;

```

---

<div class="post-metadata">

### Author: ![bdfl](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@bdfl](https://meta.discourse.org/u/bdfl)
#### Post date: [27 أكتوبر 2025، 10:04م UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/2 "2025-10-27T22:04:08Z")

</div>

لإصلاح بسيط، هل من الأفضل النشر هنا أم فتح طلب سحب (PR)؟

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [28 أكتوبر 2025، 4:44ص UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/3 "2025-10-28T04:44:40Z")

</div>

مفتاح الدعوة ليس فارغًا على الرغم من ذلك:

> <https://github.com/discourse/discourse/blob/dea00180a98025854a72a52f70e93bcfeb1f8836/app/models/invite.rb#L378-L378>

وهذا يتكرر عبر model.invites:

> <https://github.com/discourse/discourse/blob/dea00180a98025854a72a52f70e93bcfeb1f8836/frontend/discourse/app/templates/user-invited/show.gjs#L216-L232>

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

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

---

<div class="post-metadata">

### Author: ![bdfl](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@bdfl](https://meta.discourse.org/u/bdfl)
#### Post date: [28 أكتوبر 2025، 2:02م UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/4 "2025-10-28T14:02:25Z")

</div>

شكراً لك على النظر في الأمر وتوضيحه.

وضع التأخير في `before_create` يجب أن يكشف عنه.

لقد قمت بتحديثه إلى:

```javascript
{{else}}
  {{icon "link"}}
+ {{#if invite.invite_key}}
    {{i18n
      "user.invited.invited_via_link"
      key=invite.shortKey
      count=invite.redemption_count
      max=invite.max_redemptions_allowed
    }}
+ {{else}}
+ <em>Generating link...</em>
+ {{/if}}
{{/if}}

```

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [28 أكتوبر 2025، 10:33م UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/5 "2025-10-28T22:33:22Z")

</div>

أعتقد أن هذا سيكون جيدًا كطلب دمج (PR) شريطة أن يتم توطينه.

لا يزال هناك بعض الارتباك بشأن المكان الذي نقوم فيه بملء الدعوة (Invite) بكائن نصف ممتلئ، ولكنه أفضل من الفشل ويبدو صحيحًا بالنسبة لي.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [29 أكتوبر 2025، 9:41ص UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/7 "2025-10-29T09:41:20Z")

</div>

هل ترى هذا الخطأ هنا في Meta؟ أتساءل عما إذا كان قد تم إصلاحه في `latest`. في هذه الحالة، نحتاج فقط إلى تحديد الالتزام الذي أصلحه، وإعادته إلى الإصدار المستقر.

---

<div class="post-metadata">

### Author: ![bdfl](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@bdfl](https://meta.discourse.org/u/bdfl)
#### Post date: [29 أكتوبر 2025، 3:26م UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/8 "2025-10-29T15:26:39Z")

</div>

تتم إضافة الدعوة إلى القائمة فورًا بعد استدعاء save() ولكن قبل أن يتم ملء invite\_key من الخادم. لا تزال موجودة في `latest`، لذلك فتحت [PR #35679](https://github.com/discourse/discourse/pull/35679)

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [29 يوليو 2026، 8:37م UTC](https://meta.discourse.org/t/error-on-invitations-page-cannot-read-properties-of-undefined-reading-slice/386879/9 "2026-07-29T20:37:43Z")

</div>


