Не храните в Notion важные данные, они могут оказаться недоступны

Эта статья ориентирована на тех, чей бизнес зависит от Notion. Подумайте, что будет если завтра Notion окажется недоступен целиком. Если это будет критическим ударом, то эта статья для вас.

Экран смерти базы данных в исполнении Notion Скриншот с сайта Notion
Экран смерти базы данных в исполнении Notion Скриншот с сайта Notion

TL;DR: встретив критичный баг, ваше обращение к поддержке может свестись к их молчанию или ответам «нам очень жаль, нам понадобится ещё времени, мы ответим в четверг четвёртого числа», а данные из Notion вам могут быть недоступны целиком, если нет бэкапов.

Предыстория

Мы (онлайн-школа программирования Хекслет) используем Notion (на тарифе Team) в компании, как основной рабочий инструмент — там и документация, и канбан-доски, и некоторые базы данных. Две основные базы для любого бизнеса: это список контактов и список компаний-партнёров. Остальные базы данных завязаны на эти и формируют очень сложную иерархию.

До момента инцидента у нас накопились базы на 5500+ пользователей и 600+ компаний. Сотрудники периодически жаловались, что Notion не тянет такой объём данных — глючит поиск, долго думает, некоторые страницы оказываются недоступны. Кроме того, удобство на самом деле оставляет желать лучшего, на таких объёмах данных быстро вылезают все недоработки системы.

В основном мне удавалось решить все такие моменты вручную, так как они были единичными и понятными. Кроме того, планировалось сделать ревизию баз данных и почистить их от дублей, лишних полей и так далее. Но не сложилось.

База пользователей оказалась недоступна

В начале ноября база пользователей перестала открываться, все 5500+ записей были скрыты за уведомлением «Упс! Что-то пошло не так». С точки зрения бизнеса, полностью пропавшая база контактов — это «упс» масштаба полного прекращения работы. В нашем случае, это были только внешние коммуникации, а собственных клиентов мы храним в своём сервисе, но ситуация всё равно достаточно критичная.

Хронология событий

8 ноября из приложения и веб-версии вместо базы пользователей отдавалось «Упс! Что-то пошло не так».

Экран смерти базы данных в исполнении Notion Скриншот с сайта Notion
Экран смерти базы данных в исполнении Notion Скриншот с сайта Notion

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

9 ноября я написал в чат поддержки, что нам стал недоступен критически важный ресурс, ответил на вопросы поддержки и оператор удалился передавать моё обращение своей команде.

11 ноября я обнаружил, что Notion API отдаёт базу пользователей, но без реляционных связей. О чём так же написал в поддержку в тот же чат. И поскольку уже более суток ответа не поступало, я начал волноваться. Вечером этого же дня вместо чата поддержки я написал на почту team@makenotion.com, что мы всё ещё горим. Ответом мне была тишина.

К слову, корректная обработка ошибок в коде и использование коллекторов ошибок, типа Rollbar, является важным и относительно простым решением. Это здорово помогает разработчикам быстро понять что и где пошло не так, даже на фронтенде. Мы обучаем использованию таких инструментов в студенческих проектах.

12 ноября было решено выйти в публичное поле и призвать Notion там, где они позиционируют своё основное коммьюнити — в Twitter. Прежде, чем написать сообщение, я решил изучить упоминания их профиля в твиттере и получил следующую картину:

Твиты с обращениями к Notion по теме плохой работы поддержки Скриншот с сайта Twitter
Твиты с обращениями к Notion по теме плохой работы поддержки Скриншот с сайта Twitter

Краткий пересказ твиттов: «почему поддержка молчит или отвечает отписками?». Стало понятно, что мой твит попадёт в число тех, кого просто заигнорили, как это было уже сделано в поддержке и на почте. Но всё-таки я решил его опубликовать.

@NotionHQ, our database has been down for a week. Support accepted the request on November 9 and became unresponsive. There is also silence at team@makenotion.com. Can't you tell corporate clients the status of a problem resolution at least once a day?
Обращение к Notion в Twitter

Наша база данных не работает всю неделю. Служба поддержки приняла запрос 9 ноября и перестала отвечать. Также тишина на team@makenotion.com. Разве вы не можете сообщать корпоративным клиентам статус решения проблемы хотя бы раз в день?

Перевод моего твита

13 ноября мне наконец пришёл ответ на почту. Уж не знаю, повлиял на это твит или просто сработал таймер игнора и понадобилась свежая отписка:

Фрагменты общения поддержки Скриншот из почты
Фрагменты общения поддержки Скриншот из почты

Мы все еще работаем над этим. Хотя у нас еще нет сроков решения, вы можете ожидать ответа не позднее конца дня следующего вторника с обновлением статуса. Благодарим за терпение, пока мы над этим работаем.

Поддержка Notion

Ребятам нужна неделя для того, чтобы что-то ответить. Никакой информации о выполненных действиях, никаких уточняющих вопросов, никаких ответов на мои вопросы за 11 и 12 число.

Базу данных можно было восстановить за сутки

Ошибка при отображении базы данных в браузере Скриншот с сайта Notion
Ошибка при отображении базы данных в браузере Скриншот с сайта Notion

Параллельно с общением в поддержке, я изучал тексты ошибок, дёргал базу через API и фактически делал работу поддержки своими силами. Что мне удалось выяснить:

  1. В базе накопилось некоторое количество записей, которые по какой-то причине не отображаются на фронтенде. Но нормально отдаются через API.
  2. Похоже, что большое количество таких записей повлияло на отображение всей базы данных. Потому что ошибка в БД ровно такая же, как и в каждой записи (скриншот выше).
  3. Через API отдавалась база без реляционных свзей, потому что надо добавить своё приложение в каждую связанную базу данных. Поддержке я этот вопрос писал, но ответить они не смогли или не захотели. Тут я не буду вдаваться в технические детали. Если вам интересно узнать продвинутые техники работы с Notion, пишите в комментарии.

Днём 13 ноября я скачал базу пользователей через API и создал её на новой странице отдельно — она заработала. То есть по сути надо было сделать бэкап и накатить его заново. Это случилось на 4й день после первого обращения в поддержку и через ~5 часов после последней отмазы поддержки.

Восстановив базу, я написал поддержке что смог восстановить базу таким образом и что мы уйдём от них как клиенты, на что ещё через 3 дня получил не менее гениальный ответ:

Фрагмент общения поддержки Скриншот из почты
Фрагмент общения поддержки Скриншот из почты

Мне очень жаль слышать об этом и приносим свои извинения с нашей стороны. Я отправлю этот отзыв нашей команде.

Поддержка Notion

Отсюда я могу сделать вывод, что если бы к моему тикету привлекли хотя бы одного технического специалиста, он бы со своим инструментарием восстановил бы базу за сутки. Или, как минимум, через сутки написал бы что-то в духе: «Мы нашли ошибку и завтра починим». И поддержка так ничего и не сделала, то есть изначально упавшая база так и не работает.

Всё познаётся в сравнении

В ту же неделю у нас была ошибка при обработке записи Zoom. Я также обратился в поддержку и за 15 минут с момента обращения ребята выяснили детали, предложили несколько возможных решений, признали ошибку на своей стороне, проинформировали по срокам решения, завели обращение в help desk и устранили ошибку в установленные сроки.

Зарегистрированное обращение в поддержку Zoom Скриншот с сайта Zoom
Зарегистрированное обращение в поддержку Zoom Скриншот с сайта Zoom

Ребята не сожалеют, а работают. На этом контрасте хорошо видно как клиенту доносится информация о статусах решения его запроса. Несомненно, у вас найдутся кейсы, когда и поддержка Zoom не помогла. Но у них хотя бы есть видимая инфраструктура (help desk) и процессы, которые у команды Notion отсутствуют совсем.

Выводы

С одной стороны, у истории «счастливый финал» — мне удалось сделать бэкап всей базы данных и восстановить её работоспособность инструментами самого Notion. Но мне повезло, потому что ошибка была в клиентской части, а я достаточно программист, чтобы использовать Notion API. Если бы ошибка была на сервере, или не было бы API, то мы могли бы остаться с сожалениями поддержки и нерабочей базой пользователей.

Notion пока что не способен предоставить дружелюбный UI/UX для организации больших баз данных. Кроме того, он теперь помечен как ненадёжное хранилище в нашем случае. Для того, чтобы хранить базу пользователей и компаний мы переходим на специализированное хранилище с бэкапами. Кстати, можете порекомендовать что-нибудь в комментариях.

Есть вероятность, что в критичной ситуации поддержка Notion будет молчать или давать отписки в публичных пространствах и своих чатах/почтах, даже если вы корпоративный клиент, даже если вы горите. Наверняка многим повезло и общение с поддержкой имело ровно обратный опыт. Но один факт не отменяет собой другой.

Несмотря на то, что сейчас я критикую конкретно команду Notion, мораль будет довольно простая.

Люди делятся на два типа — кто ещё не делает бэкапы и кто уже делает.

Неизвестный автор

Чтобы ваш бизнес не пострадал от сбоев системы — выбирайте специализированные инструменты под конкретные задачи и делайте бэкапы. Комбайны, типа Notion, где можно собрать солянку всех функций — это удобно, но может оказаться немасштабируемым и нестабильным в долгосрочной перспективе.

6363
33 комментария

"Люди делятся на два типа — кто ещё не делает бэкапы и кто уже делает."
Есть еще третий тип людей: те, кто уже делает и проверяет возможность восстановления)

11
Ответить

Только я один вижу рекламу курсов?

2
Ответить

«Мы школа Hexlet и мы учим этому на наших курсах” это то из-за чего кроме рекламы вы для себя ничего не нашли? Для меня как для пользователя Notion информация была актуальной, хотя бы просто за напоминание: «Делайте бекап»

11
Ответить

Комментарий недоступен

3
Ответить

Забил на нотион после их фокусов с промокодами.

4
Ответить

Писали такую под себя в одной из прошлых компаний, вместо amo и jira. Ген. директор всё хочет её продать в рынок, но не уверен, насколько она отвязана в коде от зависимостей на конкретную компанию и тут явно пахнет интеграцией и бюджетом под неё (могу спросить у бывших коллег).

Вывод - писать лучше самим, но для этого нужны ресурсы и время, если notion даст возможность перескочить, параллельно разрабатывая, то это хороший вариант.

И спасибо за статью, очень интересный пользовательский опыт в разрезе повального использования notion в продуктовом менеджменте и виде корп вики

2
Ответить

Вывод - писать лучше самим, но для этого нужны ресурсы и время,

Это далеко не оптимальное решение в нашем случае. Мы хотим получить профессиональное решение, которое снимет наши боли. А самописное решение - это всегда дополнительная головная боль и профессиональным оно не станет без штата сотрудников.

На крайний случай, я напишу крон-задачу для выгрузки бэкапов из ноушена. Но за предложение спасибо :) И рад, что статья оказалась полезна!

3
Ответить