Ошибка пользователь отсутствует не существует такого пользователя

Исправить указанный пользователь не существует ошибки в Windows Server

Иногда при попытке подключиться к определенному серверу на вашем компьютере с Windows-сервером запрос может завершиться с ошибкой. Одна из таких ошибок — «указанный пользователь не существует, проверьте имя пользователя и попробуйте войти снова. Если проблема не устранена, обратитесь к системному администратору или в службу технической поддержки ». Эта ошибка может возникать по многим причинам, включая неисправные обновления Windows, о которых сообщили другие пользователи на форумах Microsoft Technet .

при экспорте в место назначения AD (активный сервер каталогов установлен на Windows Server 2003) я получаю следующие сообщения об ошибках для CN, которые являются группами:
«Ошибка DN-атрибутов — указанный пользователь не существует»
Код ошибки подключенного источника данных 1317
Ошибка подключения к источнику данных: указанный пользователь не существует
также в свойствах объекта пространства соединителя для этих объектов я могу видеть на «ожидающей экспорт вкладке» информацию:
модификация типа обновления
группа типов объектов

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

Как исправить указанный пользователь не существует

1. Проверьте наличие разрешений для NAS

указанный пользователь не существует

  1. Если ошибка возникает при попытке настроить резервное копирование на папки на диске в Backup Exec, вы можете проверить, предоставляются ли соответствующие разрешения для папки на NAS.
  2. Как и в случае с EMC, вам необходимо указать права доступа к папке на самой папке NAS, чтобы она работала без ошибок.
  3. Проверьте ресурсы, связанные с Exec Backup, чтобы проверить наличие необходимых разрешений.

Windows Server не удалось подключить файлы ISO. Вот как это исправить


2. Укажите пользователя для сервиса

указанный пользователь не существует

  1. Одна из очевидных, но распространенных ошибок, которые совершают люди, — это не указание имени пользователя для учетных записей служб в форме домена / имени пользователя, где у вас было имя пользователя.
  2. Когда серверу не удается найти имя пользователя для учетной записи, он покажет ошибку указанного пользователя не существует.
  3. Чтобы это исправить, проверьте, указали ли вы имя пользователя для учетных записей служб, а затем проверьте наличие каких-либо улучшений.

3. Удалить и создать новую учетную запись

указанный пользователь не существует

  1. Если ошибка на уровне входа в систему, вы можете создать новую учетную запись пользователя с правами администратора.
  2. Убедитесь, что вы используете другой вариант вашего имени для создания новой учетной записи. Использование того же имени, что и старое, может не решить проблему полностью.
  3. После создания новой учетной записи и входа в систему обязательно добавьте себя в некоторые группы AD, чтобы получить доступ к необходимым вещам.
  4. Если ошибка повторяется, удалите свою учетную запись из всех несущественных групп одну за другой и попробуйте войти между ними. Проблема может быть связана с одной из групп, членом которой вы являетесь.

4. Очистите хранилище паролей Windows

указанный пользователь не существует

  1. Если вы сохраните все свои учетные данные с помощью Windows Password Vault / Credential Manager, попробуйте удалить все учетные данные, связанные с сервером.
  2. Теперь попробуйте войти снова, и сервер Windows попросит вас ввести пароль. Убедитесь, что вы не выбрали опцию сохранения пароля на этот раз.
  3. Вручную ввод учетных данных должен помочь вам устранить ошибку указанного пользователя.

СВЯЗАННЫЕ ИСТОРИИ, КОТОРЫЕ ВЫ МОЖЕТЕ КАК:

  • Как установить Docker на Windows Server (2016 и более поздние версии)
  • ИСПРАВЛЕНИЕ: Windows Server AppFabric неправильно настроен
  • Как включить удаленный рабочий стол на Windows Server 2019

I am trying to add permissions to a Store procedure for a user using this query,

USE [MyDatabaseName]
GO

GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserName]
GO

I can give permissions to user through theUser Interface but using this query I get this error,

Cannot find the user ‘UserName’, because it does not exist or you do not have
permission.

If I don’t have permissions then how can I add permissions using User Interface.

a_horse_with_no_name's user avatar

asked Apr 16, 2013 at 15:06

Mathematics's user avatar

MathematicsMathematics

7,26424 gold badges77 silver badges151 bronze badges

11

I just encountered the same problem.

Make sure there is a user mapping for your login in the master table. No database role memberships are required, just tick ‘Map’ for the database master under ‘User Mapping’ in the properties for the login ‘UserName’.

starball's user avatar

starball

15.3k6 gold badges29 silver badges137 bronze badges

answered Sep 16, 2013 at 17:01

Daniele Torino's user avatar

Daniele TorinoDaniele Torino

1,6942 gold badges16 silver badges22 bronze badges

Run this:

USE [db_where_you_need_access]
GO
CREATE USER [your_user] FOR LOGIN [your_user]

answered Sep 2, 2016 at 17:31

Mark Varnas's user avatar

0

I had this issue and yet I am in the local admin group on the server. Apparently if UAC is turned onrunning SQL Server Management Studio as administrator makes a world of difference. I didn’t have any permissions until I did this.

answered Sep 30, 2014 at 15:22

Mike Cheel's user avatar

Mike CheelMike Cheel

12.6k10 gold badges71 silver badges100 bronze badges

1

You can get problems like this when a database has been restored from another server and the GUID of the user in the database is different from that of the current server.

This will re-link orphaned users:

USE <database_name>;
GO
sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', 
   @LoginName='<login_name>';
GO

other than this, if the user exists and you have the relevant security rights, there is no reason what you doing wouldn’t work.

answered Jul 3, 2013 at 6:39

Terry White's user avatar

A bit of a daft one, but make sure your UserName is spelt correctly in the GRANT statement. I spent half an hour trying to figure out what the cause of this error was and it was simply a typo on my part!

answered Mar 23, 2020 at 10:36

Sphynx's user avatar

SphynxSphynx

1352 silver badges12 bronze badges

11.03.2008, 23:50


#1

ostlinux вне форума


Junior Member


По умолчанию Ошибка: Пользователь не существует

Когда делаеш редактировать любого пользователя выдает ошибку

Ошибка:Пользователь не существует

Притом в панели показываеться списко пользователей их размер квоты сколько занято итд..
в /etc/passwd тоже есть пользователь.
в /usr/local/ispmgr/etc/ispmgr.conf тоже есть,
и так сов семи пользователями.
в чем сообственно может быть косяк?

Mar 11 19:13:56 INFO Request [89.151.137.97][root] ‘func=user.edit&elid=x25&operafake=310’
Mar 11 19:13:56 ERROR Assert ‘home/x25/data’ in ‘user’ failed
Mar 11 19:13:56 ERROR Exception 3: ‘user’ not exists.
Mar 11 19:13:58 INFO Request [89.151.xx.xx][root] ‘func=user.su&elid=x25’
Mar 11 19:13:59 INFO Request [89.151.xx.xx][x25] »
Mar 11 19:13:59 EXTINFO Load config ‘var/userconf/ispmgr.x25’
Mar 11 19:13:59 INFO Request [89.151.xx.xx][x25] ‘func=ftp’
Mar 11 19:14:01 INFO Request [89.151.xx.xx][x25] ‘func=wwwredirect’


Исправлено: эта учетная запись Microsoft не существует [4 быстрых способа]

Попытка войти в некоторые службы Microsoft, такие как Microsoft 365 (ранее Office 365) или Outlook, может привести к непредвиденной ошибке входа. Распространенная ошибка сопровождается сообщением следующего содержания: Эта учетная запись Microsoft не существует. Войдите в другую учетную запись или получите новую.

Это предотвращает доступ к любой службе Microsoft на ваших устройствах. В этом руководстве мы покажем вам возможные причины и возможные решения этой проблемы.

Почему Microsoft постоянно сообщает мне, что моей учетной записи не существует?

Существуют различные факторы, которые могут привести к тому, что учетная запись Microsoft не существует. Ниже приведены распространенные:

  • Неправильное имя учетной записи. Первое, что нужно проверить, если вы столкнулись с этой проблемой, — правильно ли вы ввели имя учетной записи. Кроме того, это может быть из-за неправильного адреса электронной почты или доменного имени. Вам нужно перепроверить и убедиться, что ваши данные верны.
  • Удаленная учетная запись. Эта проблема также может возникнуть, если вы сознательно или по ошибке навсегда удалили свою учетную запись Microsoft. Решение — создать новую учетную запись на официальной странице.

Как восстановить несуществующую учетную запись Microsoft?

1. Проверьте правильность ввода имени учетной записи.

имя пользователя учетная запись майкрософт не существует

  • Иногда возможно, что имя учетной записи было написано с ошибкой. Дважды проверьте, если вы ввели его неправильно
  • Если имя учетной записи было введено правильно, возможно, адрес электронной почты неверен или был недавно изменен.
  • Убедитесь, что в конце адреса электронной почты указан правильный домен: @gmail.com, @outlook.com, @live.com и т. д.
  • Попробуйте войти, используя свой старый адрес электронной почты или номер телефона, если они были изменены

2. Найдите имя своей учетной записи на ПК с Windows 10 или Xbox.

  1. Нажмите кнопку «Пуск» в левой части панели задач и выберите «Настройки».

    настройки виндовс 10

  2. Перейдите в «Учетные записи», затем «Электронная почта и учетные записи».
  3. Проверьте имена своих учетных записей Microsoft в разделе Электронная почта и учетные записи.

    электронная почта и учетные записи windows 10

  4. Другой способ — открыть любое приложение Office 2016 или 2019 и создать новый документ.
  5. Нажмите в верхнем левом углу, где написано «Файл», затем выберите «Учетная запись».
  6. Вы можете увидеть имя своей учетной записи Microsoft в разделе «Информация о пользователе» или в разделе «Информация о продукте».

    имя учетной записи Microsoft Word

  7. Последний способ — войти в свою электронную почту, связанную с вашей учетной записью Microsoft.
  8. Затем проверьте предыдущие электронные письма от Microsoft.
  9. В предыдущих электронных письмах от Microsoft будет указано имя вашей учетной записи.

3. Убедитесь, что вы используете правильный тип учетной записи

Учетная запись, предоставленная на вашем рабочем месте или в учебном заведении, может не иметь связанной с ней учетной записи Microsoft. Итак, вам может потребоваться создать новую учетную запись Microsoft.

Обычные учетные записи можно использовать для входа в одну или несколько служб, таких как Outlook или Microsoft 365.

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

Единственным допустимым способом входа является использование адреса электронной почты, идентификатора Skype или номера телефона, зарегистрированного в учетной записи.

4. Возможно, ваша учетная запись Microsoft была удалена.

Регистрация

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

В этом случае вы больше не сможете получить доступ к службам Microsoft, связанным с этой учетной записью.

Однако вы можете создать новую учетную запись с тем же именем. Чтобы создать новую учетную запись, перейдите на страницу регистрации Microsoft и выберите имя новой учетной записи.

После создания учетной записи вы можете снова начать использовать эту службу Microsoft.

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

Не стесняйтесь сообщить нам о решении, которое помогло вам решить эту проблему, в комментариях ниже.

Когда я запускаю следующий запрос, я получаю сообщение об ошибке:

SELECT `a`.`sl_id` AS `sl_id`, `a`.`quote_id` AS `quote_id`, `a`.`sl_date` AS `sl_date`, `a`.`sl_type` AS `sl_type`, `a`.`sl_status` AS `sl_status`, `b`.`client_id` AS `client_id`, `b`.`business` AS `business`, `b`.`affaire_type` AS `affaire_type`, `b`.`quotation_date` AS `quotation_date`, `b`.`total_sale_price_with_tax` AS `total_sale_price_with_tax`, `b`.`STATUS` AS `status`, `b`.`customer_name` AS `customer_name` FROM `tbl_supplier_list` `a` LEFT JOIN `view_quotes` `b` ON (`b`.`quote_id` = `a`.`quote_id`) LIMIT 0, 30 

Сообщение об ошибке:

#1449 - The user specified as a definer ('web2vi'@'%') does not exist 

Почему я получаю эту ошибку? Как это исправить?

Ответ 1

Это обычно происходит при экспорте представлений/триггеров/процедур из одной базы данных или сервера в другой, поскольку пользователь, создавший этот объект, больше не существует.

У вас есть два варианта:

1. Измените DEFINER

Это, возможно, проще всего сделать при первоначальном импорте объектов базы данных, удалив любые операторы DEFINER из дампа.

Изменение определителя позже является более сложным:

Как изменить определитель для представлений

  • Запустите этот SQL для генерации необходимых операторов ALTER

    SELECT CONCAT("ALTER DEFINER=`youruser`@`host` VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name'; 
  • Скопируйте и запустите инструкции ALTER

Как изменить определитель для хранимых процедур

Пример:

UPDATE `mysql`.`proc` p SET definer = '[email protected]%' WHERE definer='[email protected]%'

Будьте осторожны, потому что это изменит все определители для всех баз данных.

2. Создайте отсутствующего пользователя

Если вы обнаружили следующую ошибку при использовании базы данных MySQL:

The user specified as a definer ('someuser'@'%') does not exist`

Тогда вы можете решить это, используя следующее:

GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
FLUSH PRIVILEGES;

Из http://www.lynnnayko.com/2010/07/mysql-user-specified-as-definer-root.html

Это работало как шарм — вам нужно только изменить someuser на имя пропавшего пользователя. На локальном сервере-разработчике обычно можно использовать root.

Также рассмотрите вопрос о том, действительно ли вам нужно предоставить разрешения пользователя ALL или они могут сделать меньше.

Ответ 2

Пользователь, который изначально создал представление или процедуру SQL, был удален. Если вы воссоздаете этого пользователя, он должен устранить вашу ошибку.

Ответ 3

Я получил ту же ошибку после обновления mysql.

Ошибка была исправлена после этой команды:

mysql_upgrade -u root

mysql_upgrade должен выполняться каждый раз при обновлении MySQL. Он проверяет все таблицы во всех базах данных на предмет несовместимости с текущей версией MySQL Server. Если найденная таблица имеет возможную несовместимость, она проверяется. Если обнаружены какие-либо проблемы, таблица будет восстановлена. mysql_upgrade также обновляет системные таблицы, чтобы вы могли использовать новые привилегии или возможности, которые могли быть добавлены.

Ответ 4

Если пользователь существует, то:

mysql> flush privileges;

Ответ 5

Создайте удаляемого пользователя следующим образом:

mysql> create user 'web2vi';

или

mysql> create user 'web2vi'@'%';

Ответ 6

Выполните следующие действия:

  • Перейдите в PHPMyAdmin
  • Выберите свою базу данных
  • Выберите таблицу
  • В верхнем меню Нажмите «Триггеры»
  • Нажмите «Изменить», чтобы изменить триггер
  • Измените определитель с [user @localhost] на root @localhost

Надеюсь, что это поможет

Ответ 7

Решение — это всего лишь однострочный запрос, как показано ниже:

grant all on *.* to 'ROOT'@'%' identified by 'PASSWORD' with grant option;

Замените ROOT своим именем пользователя mysql.
Замените PASSWORD своим паролем mysql.

Ответ 8

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

Ответ 9

Исправлено, выполнив следующие комментарии.

grant all on *.* to 'web2vi'@'%' identified by 'root' with grant option;
FLUSH PRIVILEGES;

если вы получаете some_other вместо web2vi, тогда вы должны соответствующим образом изменить имя.

Ответ 10

быстро исправить работу и выгрузить файл:

mysqldump --single-transaction -u root -p xyz_live_db > xyz_live_db_bkup110116.sql

Ответ 11

Пользователь ‘web2vi’ не существует на вашем сервере mysql.

См. http://dev.mysql.com/doc/refman/5.1/en/error-messages-server.html#error_er_no_such_user

Если этот пользователь существует, проверьте, на каких серверах он может получить доступ, хотя я бы подумал, что это будет другая ошибка (например, у вас может быть web2vi @localhost, но вы получаете доступ к db как web2vi @% (во что угодно )

Ответ 12

У меня была такая же проблема с пользователем root, и он работал у меня, когда я заменил

[email protected]%

по

[email protected]

Итак, если пользователю ‘web2vi’ разрешено подключаться из ‘localhost’, вы можете попробовать:

[email protected]

Я подключен удаленно к базе данных.

Ответ 13

grant all on *.* to 'username'@'%' identified by 'password' with grant option;

Пример:

grant all on *.* to 'web2vi'@'%' identified by 'password' with grant option;

Ответ 14

Это случилось со мной после перемещения БД с одного сервера на другой. Первоначально определитель использовал localhost и пользователя. На новом сервере у нас нет этого пользователя, и хост также был изменен. Я сделал резервную копию этой конкретной таблицы и вручную удалил все триггеры из phpmyadmin. После этого он работал нормально для меня.

Ответ 15

Мои 5 центов.

У меня была такая же ошибка, когда я пытался выбрать из представления.

Однако проблема заключается в том, что это представление, выбранное из другого представления, которое было восстановлено из резервной копии с другого сервера.

и на самом деле, ДА, пользователь был недействителен, но не был очевиден с первого взгляда.

Ответ 16

Попробуйте установить процедуру как
SECURITY INVOKER

Mysql default устанавливает безопасность процедур как «DEFINER» (CREATOR OF).. вы должны установить защиту для «invoker».

Ответ 17

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

SELECT CONCAT("ALTER DEFINER=`youruser`@`host` VIEW ",
table_name," AS ", view_definition,";") FROM 
information_schema.views WHERE table_schema='databasename'

Смешайте это с командной строкой mysql (предполагая * nix, не знакомый с окнами):

> echo above_query | mysql -uuser -p > alterView.sql
> mysql -uuser -ppass databasename < alterView.sql

Примечание: команда генерирует и добавляет SELECT CONCAT в файл, делая mysql -uuser -ppass databasename < alterView.sql сбой, если вы не удалите его.

Источник: https://dba.stackexchange.com/questions/4129/modify-definer-on-many-views

Ответ 18

Ваше мнение, «view_quotes», возможно, было скопировано из другой базы данных, где «web2vi» является допустимым пользователем в базе данных, где «web2vi» не является допустимым пользователем.
Либо добавьте пользователя «web2vi» в базу данных, либо измените представление (обычно удаление части DEFINER = ‘web2vi’ @’%’ и выполнение script сделает трюк)

Ответ 19

В моем случае таблица имела триггер с пользователем DEFINER, которого не было.

Ответ 20

Проблема понятна — MySQL не может найти пользователя, заданного в качестве определителя.

Я столкнулся с этой проблемой после синхронизации модели базы данных с сервера разработки, применения ее к localhost, внесения изменений в модель и последующего повторного использования ее на localhost. По-видимому, было определено представление (я изменил), и поэтому я не смог обновить локальную версию.

Как исправить (легко) :

Примечание: он включает удаление, поэтому он отлично подходит для представлений, но убедитесь, что у вас есть резервная копия данных, если вы попробуете это в таблицах.

  • Войдите в базу данных как пользователь root (или все, что имеет достаточную мощность для внесения изменений).
  • Удалить представление, таблицу или все, с чем вы столкнулись.
  • Синхронизируйте свою новую модель — она ​​не будет жаловаться на то, чего не существует сейчас. Вы можете удалить часть SQL SECURITY DEFINER из определения элемента, с которым у вас были проблемы.

P.S. Это не является ни правильным, ни лучшим решением. Я просто разместил его как возможное (и очень простое) решение.

Ответ 21

Вы можете попробовать следующее:

$ mysql -u root -p 
> grant all privileges on *.* to `root`@`%` identified by 'password'; 
> flush privileges;

Ответ 22

Почему я получаю эту ошибку? Как это исправить?

Я потратил час до того, как нашел решение для такой проблемы. Но в моем случае я запустил это:

mysql> UPDATE `users` SET `somefield` = 1 WHERE `user_id` = 2;
ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist

Если вы действительно хотите найти проблему, просто запустите следующие команды:

SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
SHOW TRIGGERS;
SHOW FULL TABLES IN database_name WHERE TABLE_TYPE LIKE 'VIEW';

… и после каждого из них найдите поле «определитель».

В моем случае это был бородатый старый триггер, который кто-то из разработчиков забыл удалить.

Ответ 23

От ссылка MySQL CREATE VIEW:

В предложениях DEFINER и SQL SECURITY указан контекст безопасности, который будет использоваться при проверке прав доступа во время вызова представления.

Этот пользователь должен существовать и всегда лучше использовать «localhost» в качестве имени хоста. Поэтому я думаю, что если вы проверите, что пользователь существует и измените его на «localhost» при создании представления, у вас не будет этой ошибки.

Ответ 24

Перейдите в раздел подпрограммы редактирования, а внизу измените тип безопасности с Definer на Invoker.

Ответ 25

Один или несколько видов, созданных/зарегистрированных другим пользователем. Вам нужно будет проверить владельца представления и:

  • Восстановить пользователя; как говорят другие ответы.
    или
  • Создайте представления, созданные пользователем 'web2vi', используя ALTER VIEW

У меня была эта проблема.

Я пытался перенести представления из BD1 в BD2, используя SQLYog. SQLYog воссоздал представления в другой базе данных (DB2), но он сохранил пользователя BD1 (они разные). Позже я понял, что представления, которые я использовал в моем запросе, имели ту же ошибку, что и вы, даже когда я не создавал никакого представления.

Надеюсь на эту помощь.

Ответ 26

Если это хранимая процедура, вы можете сделать:

UPDATE `mysql`.`proc` SET definer = 'YournewDefiner' WHERE definer='OldDefinerShownBefore'

Но это не рекомендуется.

Для меня лучшим решением является создание определителя:

create user 'myuser' identified by 'mypass';
grant all on `mytable`.* to 'myuser' identified by 'mypass';

Ответ 27

когда mysql.proc пуст, но система всегда замечает «[email protected]%» для имени таблицы, нет, вы просто root в командной строке mysql и введите:

CHECK TABLE `database`.`table_name` QUICK FAST MEDIUM CHANGED;
flush privileges;

над

Ответ 28

Это произошло со мной после того, как я импортировал дамп в Windows 10 с MySQL Workbench 6.3 Community, а «root @% не существует». Хотя пользователь существовал.
Сначала я попытался прокомментировать DEFINER, но это не сработало.
Затем я заменил строку «root @%» на «root @localhost» и повторно импортировал дамп. Это сделало трюк для меня.

Ответ 29

Пользователь базы данных также, похоже, чувствителен к регистру, поэтому, когда у меня был пользователь root @@%, у меня не было пользователя ROOT ‘@’%. Я изменил пользователя на верхний регистр с помощью инструментария, и проблема была решена!

Ответ 30

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

Ошибка MySQL 1449: пользователь, указанный как определитель, не существует

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

At one of our customers there is an Active Directory that contains several domains. There are overlapping user accounts in these domains, like DomainAUser1 and DomainBUser1, often one of these accounts is disabled, while the same account in the other domain is active.

Recently I worked with a list, where I chose a user in People picker without problems, however, when saving the list item, I received an error:

The user does not exist or is not unique.<nativehr>0x81020054</nativehr><nativestack></nativestack>

image

The full stack trace:

[COMException (0x81020054): The user does not exist or is not unique.<nativehr>0x81020054</nativehr><nativestack></nativestack>]
   Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback) +0
   Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback) +406

[SPException: The user does not exist or is not unique.]
   Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx) +27609794
   Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback) +28003791
   Microsoft.SharePoint.SPListItem.AddOrUpdateItem(Boolean bAdd, Boolean bSystem, Boolean bPreserveItemVersion, Boolean bNoVersion, Boolean bMigration, Boolean bPublish, Boolean bCheckOut, Boolean bCheckin, Guid newGuidOnAdd, Int32& ulID, Object& objAttachmentNames, Object& objAttachmentContents, Boolean suppressAfterEvents, String filename) +26729773
   Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents, String filename) +26726382
   Microsoft.SharePoint.SPListItem.Update() +161
   Microsoft.SharePoint.WebControls.SaveButton.SaveItem(SPContext itemContext, Boolean uploadMode, String checkInComment) +20288612
   Microsoft.SharePoint.WebControls.SaveButton.OnBubbleEvent(Object source, EventArgs e) +1315
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +70
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981

A similar error can we reproduce when selecting a user in People picker, then before save, we set the account in AD as disabled:

image

When saving the item, the same “The user does not exist or is not unique” exception is thrown as long the user was not yet available in the user list of SharePoint. If the user was already former created in the SharePoint user list, there was no error, even if the user was disabled in AD.

However, in our case, it was a bit more complicated. When I searched the user in People picker, only one of the accounts was shown up, the one that was not disabled (in this case, from DomainA). The disabled account from the other domain was not included in the People picker. So far, so good.

image

However, after I selected the user and closed the People picker by pressing OK, the other, disabled user (from DomainB) was set in the field, and caused the issue at save.

image

When I set the account by explicitly specifying the domain (like DomainAtestuser) I hade no such problems.

After a user from DomainB was resolved by People picker, both accounts was shown up in the result list (at least, for a while).

I’ve created a few network traffic capture using Wireshark, and found that the LDAP queries again the AD were correct, searching only accounts that are not disabled (see condition (!(userAccountControl:1.2.840.113556.1.4.803:=2) below).

(&(&(&(objectCategory=person)(objectClass=user))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))(|(|(|(|(|(|(|(name=testuser*)(displayName=testuser*))(cn=testuser*))(mail=testuser*))(sn=testuser*))(SamAccountName=testuser*))

The response from AD was OK as well, including only the active user from DomainA.

Using SQL Server Profiler I found queries, like the ones below:

exec sp_executesql N’DECLARE @DocParentIdForRF uniqueidentifier SELECT TOP 1 @DocParentIdForRF = Docs.Id FROM Docs WHERE Docs.SiteId = @SITEID AND Docs.DirName = @FDN AND Docs.LeafName = @FLN;   SELECT TOP(@NUMROWS) t1.[Type] AS c0, UserData.[tp_ContentTypeId], UserData.[nvarchar10], UserData.[tp_ID], UserData.[tp_CopySource], UserData.[tp_Version], t1.[Id] AS c4, UserData.[nvarchar4], UserData.[nvarchar9], UserData.[nvarchar5], UserData.[tp_Created], t1.[SortBehavior] AS c1, UserData.[tp_HasCopyDestinations], UserData.[nvarchar1], UserData.[tp_ModerationStatus], UserData.[tp_Level], UserData.[nvarchar6], t1.[MetaInfo] AS c3, t1.[ScopeId] AS c5, UserData.[tp_Modified], CASE WHEN DATALENGTH(t1.DirName) = 0 THEN t1.LeafName WHEN DATALENGTH(t1.LeafName) = 0 THEN t1.DirName ELSE t1.DirName + N”/” + t1.LeafName END  AS c2, UserData.[nvarchar3] FROM UserData INNER MERGE JOIN Docs AS t1 WITH(NOLOCK) ON (UserData.[tp_RowOrdinal] = 0) AND (t1.SiteId=UserData.tp_SiteId) AND (t1.SiteId = @SITEID) AND (t1.ParentId = UserData.tp_ParentId) AND (t1.Id = UserData.tp_DocId) AND ( (UserData.tp_Level = 1) ) AND (t1.Level = UserData.tp_Level) AND (t1.IsCurrentVersion = 1) AND (t1.Level = 1 OR t1.Level =  2) WHERE ( (UserData.tp_Level = 1) ) AND (UserData.tp_SiteId=@SITEID AND (UserData.tp_ParentId=@DocParentIdForRF)) AND (UserData.tp_RowOrdinal=0) AND ((UserData.[bit3]=0 ) AND ((UserData.[tp_ContentTypeId] = @L2IMG) AND (((UserData.[nvarchar3] LIKE @L3TXP) OR (UserData.[nvarchar1] LIKE @L4TXP)) OR ((UserData.[nvarchar4] LIKE @L4TXP) OR (UserData.[nvarchar5] LIKE @L3TXP)))) AND t1.SiteId=@SITEID AND (t1.ParentId=@DocParentIdForRF)) ORDER BY UserData.[nvarchar3]  ASC ,UserData.[tp_ID]  ASC  OPTION (FORCE ORDER, MAXDOP 1)’,N’@LFFP uniqueidentifier,@SITEID uniqueidentifier,@L2IMG varbinary(8000),@L3TXP nvarchar(4000),@L4TXP nvarchar(4000),@FDN nvarchar(4000),@FLN nvarchar(4000),@NUMROWS bigint,@RequestGuid uniqueidentifier’,@LFFP=’00000000-0000-0000-0000-000000000000′,@SITEID=’94053632-22BC-4CEA-A146-8EC049097DA3′,@L2IMG=0x010A00980232D0CB4C3C41A835ED215B890946,@L3TXP=N’%DomainAtestuser%’,@L4TXP=N’DomainAtestuser%’,@FDN=N’my/_catalogs’,@FLN=N’users’,@NUMROWS=12,@RequestGuid=’5DBABDC5-3182-4866-8FBC-0E9244FE6733′

and

exec proc_SecResolvePrincipal @SiteId=’94053632-22BC-4CEA-A146-8EC049097DA3′,@Input=N’DomainAtestuser’,@InputIsEmailOnly=0,@AccountName=N’DomainAtestuser’,@DLAlias=NULL,@DLAliasServerAddress=NULL,@SearchScope=1,@RequestGuid=’5DBABDC5-3182-4866-8FBC-0E9244FE6733′

While the user did not yet exist in the SharePoint site, neither of these queries had a result.

Using Reflector I found that the following classes and methods have significant roles in the user login name resolution:

Microsoft.SharePoint.Utilities.SPUtility class, ResolvePrincipalInternal, ResolveWindowsPrincipal, SearchAgainstAD methods
Microsoft.SharePoint.WebControls.PeopleEditor class, GetAccountFromSid method
Microsoft.SharePoint.Utilities.SPActiveDirectoryPrincipalBySIDResolver class, ResolvePrincipal method
Microsoft.SharePoint.Utilities.SPUserUtility class, ResolveAgainstUserInfoList method
System.Security.Principal.NTAccount class, Translate and TranslateToSids methods

There are a few approach to resolve the user via the methods above:

SPPrincipalInfo pi = SPUtility.ResolveWindowsPrincipal(web.Site.WebApplication, «testuser», SPPrincipalType.User, false);

or

SecurityIdentifier sid = (SecurityIdentifier)new NTAccount(«testuser»).Translate(typeof(SecurityIdentifier));

or using Reflection through the internal static GetAccountFromSid method of the PeopleEditor class:

  1. byte[] binaryForm = null;
  2. string ntAccountName = null;
  3. string domainName = null;
  4. string userName = null;
  5.  
  6. string lookUpName = «testuser»;
  7. Console.WriteLine(«Account name to be resolved: {0}», lookUpName);
  8.  
  9. SecurityIdentifier sid = (SecurityIdentifier)new NTAccount(lookUpName).Translate(typeof(SecurityIdentifier));
  10. binaryForm = new byte[sid.BinaryLength];
  11. sid.GetBinaryForm(binaryForm, 0);
  12.  
  13. Console.WriteLine(«{0} (Original SID)», sid);
  14.  
  15. // call internal static method PeopleEditor.GetAccountFromSid
  16. object sidTypeInvalid = null;
  17. // sidTypeInvalid = SPAdvApi32.SID_NAME_USE.SidTypeInvalid;
  18. // hack to get the Microsoft.SharePoint assembly
  19. Assembly spAssembly = typeof(SPWeb).Assembly;
  20.  
  21. // get the internal enum type from the internal class
  22. Type sidNameUseType = spAssembly.GetType(«Microsoft.SharePoint.Win32.SPAdvApi32+SID_NAME_USE»);
  23. FieldInfo fi_SidTypeInvalid = sidNameUseType.GetField(«SidTypeInvalid», BindingFlags.Public | BindingFlags.Static);
  24. sidTypeInvalid = fi_SidTypeInvalid.GetValue(null);
  25. MethodInfo mi_GetAccountFromSid = typeof(PeopleEditor).GetMethod(«GetAccountFromSid», BindingFlags.NonPublic | BindingFlags.Static);
  26. ntAccountName = mi_GetAccountFromSid.Invoke(null, new object[] { binaryForm, userName, domainName, sidTypeInvalid }) as string;
  27. //pe.GetAccountFromSid(binaryForm, out userName, out domainName, out sidUse)
  28. SecurityIdentifier sid2 = (SecurityIdentifier)new NTAccount(ntAccountName).Translate(typeof(SecurityIdentifier));
  29. Console.WriteLine(«Account name found: {0}», ntAccountName);
  30. Console.WriteLine(«{0} (SID after GetAccountFromSid)», sid2);

We can use the public instance methods of the PeopleEditor class from a console application as well, however, in this case we have to inject a dummy HTTP context first.

  1. // inject fake context
  2. HttpRequest request = new HttpRequest(string.Empty, web.Url, string.Empty);
  3. HttpResponse response = new HttpResponse(new System.IO.StreamWriter(new System.IO.MemoryStream()));
  4. HttpContext dummyContext = new HttpContext(request, response);
  5. dummyContext.Items[«HttpHandlerSPWeb»] = web;
  6. HttpContext.Current = dummyContext;
  7. PeopleEditor pe = new PeopleEditor();
  8.  
  9. // method 1
  10. ArrayList resolvedAccounts = pe.ResolveAccountsByArrKeys(new string[] { «testuser» });
  11.  
  12. // method 2
  13. PickerEntity entity = new PickerEntity();
  14. entity.Key = «testuser»;
  15. var entity2 = pe.ValidateEntity(entity);

I found that the source of the issue might be the Translate method of the NTAccount class. If I call this method first (or after a long while) with the account name (like ‘testuser’), the SID of the disabled account is returned. When calling the method with the full login name (like ‘DomainAtestuser’ or ‘DomainBtestuser’), the SID of the corresponding user is returned. However, when we call the method with the account name (like ‘testuser’) just after we called the method with the full login name (like ‘DomainAtestuser’), the SID of the active user is returned. It seems that there is a sort of caching implemented somewhere in these objects, but since they are rather complex, including calls into unmanaged code, I was not (yet) able to resolve the issue of user name resolution.

Describe the bug
The Auth.signIn method now returns a userNotFoundException even though the user exists in the cognito user pool.

I had an existing and fully functioning auth flow working through cognito for my react-native app. However, I, realized that I needed to create and use a new cognito user pool for my app, and delete the old user pool. I achieved this via the amplify-cli. All seemed well when I did a sign up test in the app. The user could create an account, receive a verification code in their email, and the cognito user pool responded appropriately. However, when that same user that was just created attempts to sign in, the Auth.signIn method throws a userNotFoundException error.

To Reproduce
Assuming the app already as Auth added
In the terminal run:

  1. amplify remove auth
    Confirm removal
  2. amplify push
    Confirm push
  3. amplify add auth
    Select default configuration with social providers and conduct a standard setup
  4. Rebuild the App
  5. Create a new user via the Auth.signUp method (in app, this is just the standard auth flow)
  6. Attempt to sign in with the just-created user.

Expected behavior
The Auth.signIn method should return a successful sign in.

Code Snippet
Error:
error signing in... {code: "UserNotFoundException", name: "UserNotFoundException", message: "User does not exist."}

Context of Auth.signIn method:

import React, { Component, useState, useContext } from 'react' import {AuthContext} from '../../navigation/Screens'; import {ToggleContext} from './Auth'; import { View, TouchableWithoutFeedback, StyleSheet } from 'react-native' import { Text } from 'galio-framework'; import { Auth } from 'aws-amplify' import argonTheme from '../../constants/argonTheme'; import Input from '../../components/Auth/Input' import ActionButton from '../../components/Auth/ActionButton' import SocialButton from '../../components/Auth/SocialButton'; import GoogleButton from '../../components/Auth/GoogleButton'; // Sign in screen function SignIn() { // Assigns updateAuth function to a variable // Assigns toggleAuthType function to a variable const updateAuth = useContext(AuthContext); const toggleAuthType = useContext(ToggleContext); // Username and Password state management via useState hooks const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); // Sign In function // Attempts to sign in with given username and password // * Note that Auth.signIn returns a promise in the form of an object // Sets current view to the main app if the Auth.signIn promise resolves to a success // Logs error and alerts if the Auth.Sign promise resolves to a failure async function signIn() { try { await Auth.signIn(username, password) console.log('successfully signed in') updateAuth('MainNav') } catch (code) { console.log('error signing in...', code) alert(code.message) } } function showForgotPassword() { toggleAuthType('showForgotPassword') } return ( <View> <Input onChangeText={(text) => {setUsername(text)}} type='username' placeholder='Username' /> <Input onChangeText={(text) => {setPassword(text)}} type='password' placeholder='Password' secureTextEntry /> <ActionButton title='Sign In' onPress={signIn} BGColor={argonTheme.COLORS.ACTIVE} /> <View style={styles.buttonContainer}> <TouchableWithoutFeedback onPress={showForgotPassword}> <Text style={{fontSize: 16, fontFamily: 'OpenSans-regular'}}>Forget your password?</Text> </TouchableWithoutFeedback> </View> <View style={styles.buttonContainer}> <Text style={{fontSize: 16, fontFamily: 'OpenSans-regular'}}>Or</Text> </View> <View style={styles.socialCont}> <GoogleButton title="Sign in with Google" onPress={() => Auth.federatedSignIn({ provider: "Google" })} /> <SocialButton title="Sign in with Facebook" onPress={() => Auth.federatedSignIn({ provider: "Facebook" })} BGColor={argonTheme.COLORS.FACEBOOK} iconName='facebook' iconColor='white' textColor={argonTheme.COLORS.WHITE} /> <SocialButton title="Sign in with Apple" BGColor={argonTheme.COLORS.BLACK} iconName='apple' iconColor='white' textColor={argonTheme.COLORS.WHITE} /> </View> </View> ) } const styles = StyleSheet.create({ buttonContainer: { paddingTop: '2%', justifyContent: 'center', flexDirection: 'row', }, socialCont: { marginTop: '5%' }, }) export default SignIn 

aws-exports.js

const awsmobile = { "aws_project_region": "us-east-2", "aws_cognito_identity_pool_id": "us-east-2:d15b3200-6cc2-4e28-9ef0-334cdfa3c389", "aws_cognito_region": "us-east-2", "aws_user_pools_id": "us-east-2_uZqiPEd19", "aws_user_pools_web_client_id": "1npgiokobk2d10ofoerablv93t", "oauth": { "domain": "nerdhub-auth-dev.auth.us-east-2.amazoncognito.com", "scope": [ "phone", "email", "openid", "profile", "aws.cognito.signin.user.admin" ], "redirectSignIn": "http://localhost:3000/", "redirectSignOut": "http://localhost:3000/", "responseType": "code" }, "federationTarget": "COGNITO_USER_POOLS" }; 

parameters.json

{ "identityPoolName": "nerdhub39718c9f_identitypool_39718c9f", "allowUnauthenticatedIdentities": false, "resourceNameTruncated": "nerdhu39718c9f", "userPoolName": "nerdhub39718c9f_userpool_39718c9f", "autoVerifiedAttributes": [ "email" ], "mfaConfiguration": "OFF", "mfaTypes": [ "SMS Text Message" ], "smsAuthenticationMessage": "Your authentication code is {####}", "smsVerificationMessage": "Your verification code is {####}", "emailVerificationSubject": "Your verification code", "emailVerificationMessage": "Your verification code is {####}", "defaultPasswordPolicy": false, "passwordPolicyMinLength": 8, "passwordPolicyCharacters": [], "requiredAttributes": [ "email" ], "userpoolClientGenerateSecret": true, "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": [ "email" ], "userpoolClientReadAttributes": [ "email" ], "userpoolClientLambdaRole": "nerdhu39718c9f_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, "sharedId": "39718c9f", "resourceName": "nerdhub39718c9f", "authSelections": "identityPoolAndUserPool", "authRoleArn": { "Fn::GetAtt": [ "AuthRole", "Arn" ] }, "unauthRoleArn": { "Fn::GetAtt": [ "UnauthRole", "Arn" ] }, "useDefault": "defaultSocial", "hostedUI": true, "hostedUIDomainName": "nerdhub-auth", "authProvidersUserPool": [ "Facebook", "Google" ], "hostedUIProviderMeta": "[{"ProviderName":"Facebook","authorize_scopes":"email,public_profile","AttributeMapping":{"email":"email","username":"id"}},{"ProviderName":"Google","authorize_scopes":"openid email profile","AttributeMapping":{"email":"email","username":"sub"}}]", "oAuthMetadata": "{"AllowedOAuthFlows":["code"],"AllowedOAuthScopes":["phone","email","openid","profile","aws.cognito.signin.user.admin"],"CallbackURLs":["http://localhost:3000/"],"LogoutURLs":["http://localhost:3000/"]}", "userPoolGroupList": [], "dependsOn": [] } 

Environment
System:
OS: macOS 10.15.4
CPU: (8) x64 Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
Memory: 16.45 MB / 16.00 GB
Shell: 5.7.1 — /bin/zsh
Binaries:
Node: 12.14.1 — /usr/local/bin/node
Yarn: 1.22.4 — /usr/local/bin/yarn
npm: 6.14.5 — /usr/local/bin/npm
Browsers:
Chrome: 84.0.4147.105
Safari: 13.1
npmPackages:
@apollo/react-hooks: ^3.1.5 => 3.1.5
@aws-amplify/pubsub: ^2.1.9 => 2.1.9
@babel/core: ^7.9.0 => 7.9.0
@babel/runtime: ^7.9.2 => 7.9.2
@expo/vector-icons: ^10.0.6 => 10.0.6
@react-native-community/eslint-config: ^1.1.0 => 1.1.0
@react-native-community/google-signin: ^4.0.0 => 4.0.0
@react-native-community/masked-view: ^0.1.9 => 0.1.9
@react-native-community/netinfo: ^5.9.2 => 5.9.5
@react-navigation/bottom-tabs: ^5.2.7 => 5.2.7
@react-navigation/compat: ^5.1.9 => 5.1.9
@react-navigation/drawer: ^5.5.0 => 5.5.0
@react-navigation/material-top-tabs: ^5.2.2 => 5.2.8
@react-navigation/native: ^5.2.6 => 5.4.3
@react-navigation/stack: ^5.2.11 => 5.2.11
@unimodules/core: ^5.1.0 => 5.1.0
@unimodules/react-native-adapter: ^5.2.0 => 5.2.0
amazon-cognito-identity-js: ^4.3.1 => 4.3.3
apollo-boost: ^0.4.9 => 0.4.9
aws-amplify: ^2.3.0 => 2.3.0
aws-amplify-react-native: ^4.2.0 => 4.2.1
babel-jest: ^25.3.0 => 25.3.0
eslint: ^6.8.0 => 6.8.0
expo-asset: ^8.1.4 => 8.1.4
expo-constants: ^9.0.0 => 9.0.0
expo-file-system: ^8.1.0 => 8.1.0
expo-font: ^8.1.1 => 8.1.1
galio-framework: ^0.6.3 => 0.6.3
graphql: ^14.6.0 => 14.7.0
jest: ^25.3.0 => 25.3.0
metro-react-native-babel-preset: ^0.59.0 => 0.59.0
prop-types: ^15.7.2 => 15.7.2
react: ^16.11.0 => 16.13.1
react-native: 0.62.2 => 0.62.2
react-native-elements: ^1.2.7 => 1.2.7
react-native-gesture-handler: ^1.6.1 => 1.6.1
react-native-inappbrowser-reborn: ^3.4.0 => 3.4.0
react-native-material-dropdown: ^0.11.1 => 0.11.1
react-native-material-tabs: ^4.1.2 => 4.1.2
react-native-reanimated: ^1.8.0 => 1.8.0
react-native-safe-area-context: ^0.7.3 => 0.7.3
react-native-screens: ^2.5.0 => 2.5.0
react-native-snap-carousel: ^3.9.1 => 3.9.1
react-native-splash-screen: ^3.2.0 => 3.2.0
react-native-tab-view: ^2.14.0 => 2.14.2
react-native-vector-icons: ^6.6.0 => 6.6.0
react-native-view-more-text: ^2.1.0 => 2.1.0
react-test-renderer: 16.11.0 => 16.11.0
typescript: ^3.8.3 => 3.8.3
npmGlobalPackages:
@aws-amplify/cli: 4.21.0
create-react-app: 3.4.0
expo-cli: 3.15.5
firebase-tools: 8.4.0
gatsby-cli: 2.12.17
gulp: 4.0.2
npm: 6.14.5
react-native-cli: 2.0.1

Smartphone (please complete the following information):

  • Device: iPhone 11
  • OS: IOS 13.6
  • Browser: safari

Понравилась статья? Поделить с друзьями:
  • Ошибка пользователь не определен что делать
  • Ошибка получения файла для загрузки битрикс 24
  • Ошибка пользователь не найден тинькофф
  • Ошибка получения трансляции сбербокс тв
  • Ошибка получения трансляции сбер салют