Невозможно автодополнение некоторых эмодзи: превышена квота

Пока я не очистил кэш браузера, я сталкивался со следующей проблемой: при попытке вставить (некоторые) эмодзи, введя :, затем набрав часть имени и нажав Tab или кликнув по нему, возникала ошибка:

DOMException: Превышена квота.

E                         _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:16701
default                   _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:17087
dispatch                  _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:5443
handle                    _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:5247
(Async: EventListener.handleEvent)
add                       _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:5295
Se                        _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:5195
each                      _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:395
each                      _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:217
Se                        _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:5194
on                        _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:5934
default                   _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:16990
_applyEmojiAutocomplete   _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:33375
didInsertElement          _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:33183
n                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:43433
trigger                   _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:46074
n                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:43433
didCreate                 _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:19021
commit                    _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:62778
commit                    _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:62873
commit                    _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:18069
_renderRoots              _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:19654
_renderRootsTransaction   _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:19684
_revalidate               _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:19730
invoke                    _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66550
flush                     _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66442
flush                     _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66646
_end                      _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:67222
_boundAutorunEnd          _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66862
(Async: promise callback)
i                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66235
_scheduleAutorun          _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:67443
_end                      _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:67232
_boundAutorunEnd          _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66862
(Async: promise callback)
i                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66235
_scheduleAutorun          _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:67443
_end                      _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:67232
_boundAutorunEnd          _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66862
(Async: promise callback)
i                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66235
_scheduleAutorun          _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:67443
_ensureInstance           _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:67429
schedule                  _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:66998
<anonymous>               _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:38529
b                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:72276
_setModel                 _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:36655
r                         _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:36641
e                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:72238
e                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:72760
open                      _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:36583
replyToPost               _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:46862
send                      _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:38938
_replyToPost              _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:22973
replyToTopic              _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:22538
replyToTopic              self-hosted:1175
d                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:93072
_handleKey                _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:93136
handleKey                 _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:93513
_handleKeyEvent           _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:93199
(Async: EventListener.handleEvent)
c                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:92606
v                         _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:93359
init                      _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:22310
initialize                _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:80945
initialize                _application-b9edfbeb8d7476cb10ebd6a174760ebddf6c20c1d1a78bb95975f0d0af885455.js:7780
runInstanceInitializers   _vendor-ccc170ebd7d3ab2d70c3e0c52d1121e7ced023e6ed05de129e0060c2a71ba2e3.js:49347

Это происходит, например, с:

  • :face_with_raised_eyebrow:
  • :family_man_boy:
  • :man_mechanic:
  • :man_bad:
  • :camera_flash:
  • :partying_face:

Это не происходит с:

  • :heart_eyes:
  • :face_vomiting:
  • :point_right:

Я не вижу здесь явной закономерности.

Я всё ещё использую Discourse 2.8.0.beta6. У меня Firefox 93. Это может быть проблемой, специфичной для браузера. После очистки кэша всё снова работает, хотя я всё ещё удивляюсь, что вызвало такое поведение изначально. Вставка эмодзи не должна быть связана с кэшированием? Хотя, возможно, проблема в обновлении списка недавних эмодзи. В любом случае, я считаю, что это не должно завершаться ошибкой подобным образом.

Можете ли вы воспроизвести проблему на https://try.discourse.org/?

Я даже не могу воспроизвести это на своём собственном форуме после очистки кэша браузера. :slight_smile:

Тем не менее, я считаю, что можно было бы просто корректно обработать этот конкретный сценарий сбоя.

Рад, что вы всё решили :+1:

Не уверен, что это стоит классифицировать как ошибку, требующую исправления. Браузеры могут переходить в крайне нестабильное состояние, когда заканчивается место для хранения данных.

Если вы сможете найти простой способ воспроизвести эту проблему, я с радостью переклассифицирую её.