Содержание
- tar: не может открыть: нет такого файла или каталога
- 4 ответа 4
- Prisma crashes with This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. #2754
- Comments
- Bug description
- How to reproduce
- Expected behavior
- Prisma information
- Environment & setup
- This is non recoverable error
- Answered by:
- Question
- Answers
- Rust Errors
- Errors in Rust
- Non-Recoverable Errors in Rust
- Recoverable Errors
- unwrap() & expect()
tar: не может открыть: нет такого файла или каталога
Я пытаюсь следовать инструкциям здесь, чтобы установить Jetty на Ubuntu, но у меня возникает проблема, когда я пытаюсь использовать tar.
Но когда я пытаюсь
Я получаю ошибку
Что я делаю неправильно? (Я тоже пробовал как root но это не помогло)
РЕДАКТИРОВАТЬ
Ни один из предложенных ответов не работает для меня. Ниже я копирую свои попытки из командной строки. Что я делаю неправильно?
4 ответа 4
Использование тире и порядок аргументов, кажется, проблема:
Изменить: следующие две команды, кажется, работают для меня:
Конечно, вам нужно заменить tar tzf на tar xzf и, возможно, придется добавить sudo .
Проблема может быть в позиции аргумента f . Предполагается, что имя архива должно следовать за аргументом f , поэтому ошибки говорят о невозможности открыть файл с именем z .
Команда sudo wget http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.1.0.v20131115.tar.gz&r=1 неверна по двум причинам:
- Ссылка на скачивание должна быть указана, так как вы используете &, который является особенным в Bash. См. Http://www.gnu.org/software/bash/manual/bash.html#Definitions.
- Вы используете старую мертвую ссылку. Переход на страницу загрузки Jetty ( http://download.eclipse.org/jetty/ ) показывает http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.1.3.v20140225.tar.gz&r=1 как правильная ссылка для скачивания.
Затем вы должны использовать следующую команду:
Аргумент -O помогает в выводе на правильное имя файла.
После этого tar xvf jetty-distribution-9.1.3.v20140225.tar.gz должен работать.
Здесь опция x использует режим извлечения, v показывает дополнительную информацию (имя извлекаемого файла), а f указывает, что следующий аргумент — это путь к архиву, который нужно извлечь.
Вам не нужна опция z которая указывает сжатый архив gzip так как tar распознает его автоматически.
Наконец, — предыдущие варианты устарели AFAIK.
Другое дело: я не рекомендую использовать sudo когда это действительно не нужно. Здесь вы просто хотите скачать и распаковать архив, который не нуждается в привилегиях суперпользователя, и вы можете сделать это в своем домашнем каталоге. Это позволяет избежать ошибок, которые могут привести к серьезным проблемам, особенно когда вы действительно не знаете, что делаете.
Источник
Prisma crashes with This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. #2754
Bug description
Prisma panics on a valid query.
I make this Prisma call:
In the query, I request last_sent_user which is a relation based on the field last_sent_by (full schema shown later).
- This isn’t the default name for the relation which would be users ; however, last_sent_user is more representative of what the relation is.
- The last_sent_user related record does exist. I checked it manually and the related users.id exists in the database.
- If I remove last_sent_user from the query, it executes without error.
- The book relation works fine.
As can be seen in the error, Prisma is expected to receive a value for last_sent_user :
How to reproduce
I’ve provided details below but a minimal reproduction may be hard to create because my other relations work fine. I don’t know what is special about this one that makes it crash other than the naming is a little different (however, other relations are renamed to use a singular form in many cases).
Expected behavior
Should not panic.
Prisma information
These are the immediate models related to this query.
Environment & setup
- OS: Mac OS
- Database: PostgreSQL
- Prisma version: 2.0.0
- Node.js version: v12.16.2
The text was updated successfully, but these errors were encountered:
The was solved by removing @prisma/client and adding it again.
As the solution was unclear, I added issue #2753 to improve the error message.
The panic occurs again in the same place last_sent_user in production. Since it is in the same place, it feels like this is something more than just a one time corruption.
We are going live in two weeks.
Would appreciate somebody taking a look or offering some suggestions on how to prevent this when our app is live.
Does this always crash or just sometimes?
Can you maybe a dump of your SQL with the data that is causing this? Then it would be simple for us to reproduce.
When I run it, it always crashes.
These are the unedited SQL logs from Heroku.
Some of the queries are executed in the same Promise.all in parallel on the client. The API accepts a graph, and executes each branch of the graph in its own Promise which it then combines together at the end using Promise.all . I mention this in case parallelism in Prisma is part of the issue.
Based on the log, Prisma is looking for a users.id in 61 which I can confirm does not exist in the database. This explains the error PANIC: Application logic invariant error: received null value for field last_sent_user which may not be null
Prisma appears to be reusing the id from books.id which is 61 and which I can confirm is the correct id and that it exists.
I can also confirm that inside the database, the last_sent_by value is 13 and not 61 .
Note that shelves.id is also set to 13 and that is correct. In the implementation, shelves and users share the same id if the shelf belongs to the user which in the case of this query, it does.
Can you maybe a dump of your SQL with the data that is causing this? Then it would be simple for us to reproduce.
The logs I in the previous post includes the SQL and the input data. Scroll to the right to see them.
It does not show the result data because I don’t know how to make that work on Heroku but you can see from the SQL query and input data where the error comes from.
To break it down, this query is run:
From there, this query is run:
We can see that some time after that, the books which is specified as a nested select in the query is selected:
In this query, it can be seen that the id parameters is 61 . This is the correct return value as can be seen in the database screenshot here:
Then later still, we see this query being executed against the users table which is the join to last_sent_user :
The issue with this query, however, is that it is using the value 61 in its where clause but that is the value for book .
Again, looking at the data in the database:
We can see that the last_sent_by column has the value 13 . So somewhere during this query, the value from book_id was being used instead of the value from last_sent_by .
For additional clarity, the relation last_sent_user connects to the users table through the column last_sent_by as can be seen in the Prisma schema:
Can you please export the SQL database schema and the data in it into a .sql file so we can recreate your database ourselves and run the code you provided on that?
I will try to recreate this in a way that is transportable. For clarity, the code works on my Mac at the moment. My last deploy to Heroku did not but I changed the app to not make that query.
Reproducibility is important to bug fixes. It’s just inconsistent in how it gets to the broken state and I’m unclear how it got into that state. Any insight on things I can try?
It might be related to upgrading. I feel like it worked before and then started failing after an upgrade. On the Mac, I fixed the issue by removing then adding @prisma/client. On Heroku, it rebuilds each time I deploy and it continued to fail after a redeploy. however, I wonder if it’s a caching issue in their build process.
I remember reading that prisma uses a . file of some sort in newer versions in node_modules and I wonder if that is playing a part.
If you can give us a SQL file with the schema and some data we can totally try to reproduce this ourselves — maybe it already works on the first try with the code snippets you provided above.
@janpio How should I send the file to you? I have it ready.
@thesunny You can email it to «schemas@prisma.io». If you want us to sign an NDA, we can also do that.
Done. Let me know if there are any issues with it.
@thesunny I restored the pg_dump that you have sent but it looks like it is missing some data. The query posted here is for book_share_email_invitations but the restore doesn’t have that model.
Can you please send me a complete data? Also, I would prefer it to be a a simple pg_dump without -Fc flags as that export it in a custom format which is not very convenient to modify if I want to change the roles.
Also, as always, try with the latest dev version once to make sure if this was not already addressed in some other form.
Oh, my apologies. I used the dump feature in Heroku which I don’t have much experience with.
I will try again.
No problems at all. Take your time 🙂
I resent the file using pg_dump as requested. Note that I mistakenly read that you wanted it WITH the -Fc flag so the first version I sent you is wrong. I then sent the correct version in a follow up email.
@thesunny I was unable to reproduce the error:
I used the following code:
Can you please try again with the latest version? 🙏
Источник
This is non recoverable error
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
I’m getting this error and not sure how to proceed yet. As seen in the screenshot below I’ve had 282 out of 285 successful replications.
The three errors are as follows.
Hyper-V suspended replication for virtual machine ‘XAVIER’ due to a non-recoverable failure. (Virtual Machine ID 554B5DA9-139C-4207-80B9-5E7E9CD8FAD3). Resume replication after correcting the failure.
Hyper-V could not replicate changes for virtual machine ‘XAVIER’: The device does not recognize the command. (0x80070016). (Virtual Machine ID 554B5DA9-139C-4207-80B9-5E7E9CD8FAD3)
Hyper-V suspended replication for virtual machine ‘XAVIER’ due to a non-recoverable failure. (Virtual Machine ID 554B5DA9-139C-4207-80B9-5E7E9CD8FAD3). Resume replication after correcting the failure
Answers
Virtual machine Replication Status will be shown as Critical — suspended and administrator intervention is required. Examples would include a broken VHD chain or the Replica virtual machine is in an invalid state.
You may encounter such error if there is:
Network Authentication Error, Authorization Error, or Virtual Machine not found. In the case of a standalone Hyper-V server, this is a non-recoverable error and administrator intervention is required. If the Replica server is a Hyper-V Failover Cluster with the Replica Broker configured, the same logic is applied as indicated above (Network Error — Replica Broker).
You may refer to this article to troubleshoot Hyper-V replica issues:
Источник
Rust Errors
Errors in Rust
Errors in Rust are nothing but logics or syntaxes which are illegal and cause an interruption in the normal working of the program.
There are two different types of errors, which are:
- Recoverable Errors : This kind of error can be handled by the compiler or by the user. And thus, the program execution can flow normally, after the necessary steps are taken to overcome the error.
- Non-recoverable Errors : This kind of error can be handled by the user, which means that the user can not recover from the error. There are no ways with the help of which one can recover from the errors. And so, the program execution will stop in the error.
This has to be noted that, in other programming languages there are methods where we can use exceptions for handling errors. But in Rust, there is no such facility. Rust handles errors in a different way.
- For recoverable errors, it returns an enum — Result .
- For non-recoverable errors, it will call the macro panic!() .
Non-Recoverable Errors in Rust
This kind of error can be handled by the user, which means that the user can not recover from the error. When this kind of error occurs, then the macro panic! is automatically invoked by the Rust compiler and the program execution stops.
It may be noted that the macro can also be called from the user’s side also.
Program to show the use of the macro panic!()
In the above program output, we are have intentionally invoked the macro panic()! to see how the program execution stops.
Program Output :
In the next example, we shall see how an error will automatically call the macro panic!() . Here, we shall refer to an array index that is not present.
A program which abort the program(macro panic!() is called in the background automatically)
In the above program, we have declared an array whose size of 3. This array has an index starting from 0 to 2. Now when we tried to print the element from an index 4, which is not present, we are creating an error for the program flow and it is non-recoverable. Therefore, the macro panic()! is called to abort the program.
Program Output :
Using panic!() intentionally
This can be explained by considering the example below, where we use the macro panic!(), if the program flow is transferred in an else block of an if-else program.
Program Output :
Recoverable Errors
Recoverable Errors are those errors that can be handled by the compiler. When this kind of error occurs, then the enum — Result .
The enum Result has two variants- T and E which are generic parameters. If in case, there are no errors then the variant T will be returned. Otherwise, the variant E will be returned.
Syntax :
Program to search for a file
In the above program we are willing to search for a file, which is not present inside the directory. And thus it is an error. Now the way to handle the error is to execute the Err part, and so that the error is handled and then the program flows normally.
Program Output :
unwrap() & expect()
unwrap()
The function unwrap() returns a panic if an operation fails along with printing the default error message. Otherwise, it will return the actual result.
A program to check whether a number is even
In the above program, we have concatenated the function unwrap() , with the function in operation check() . The function check(), returns an enum that has two default variants- OK and Err. When the check functions return a true, that is when the number is even, then the OK part is executed and the keyword true is returned.
On the other hand, when the check() function returns a false, then the macro unwrap() is automatically invoked to print the error message.
Program Output :
Case1 : When the number is even (TRUE case)
Program Output :
Case 1: When the number is not even (FALSE case)
expect()
Using the function expect() , we can generate custom message for an error. This is helpful, because the compiler generated messages are somewhat very technical and may not be always understood by everyone.
A program to check whether an integer is even (FALSE Case)
Program Out (When the function check() returns a false)
Источник
Errors in Rust are nothing but logics or syntaxes which are illegal and cause an interruption in the normal working of the program.
There are two different types of errors, which are:
- Recoverable Errors : This kind of error can be handled by the compiler or by the user. And thus, the program execution can flow normally, after the necessary steps are taken to overcome the error.
- Non-recoverable Errors : This kind of error can be handled by the user, which means that the user can not recover from the error. There are no ways with the help of which one can recover from the errors. And so, the program execution will stop in the error.
This has to be noted that, in other programming languages there are methods where we can use exceptions for handling errors. But in Rust, there is no such facility. Rust handles errors in a different way.
- For recoverable errors, it returns an enum —
Result<T,E>
. - For non-recoverable errors, it will call the macro
panic!()
.
This kind of error can be handled by the user, which means that the user can not recover from the error. When this kind of error occurs, then the macro panic! is automatically invoked by the Rust compiler and the program execution stops.
It may be noted that the macro can also be called from the user’s side also.
Program to show the use of the macro panic!()
fn main() {
panic!("Hello");
}
In the above program output, we are have intentionally invoked the macro panic()! to see how the program execution stops.
Program Output :
thread 'main' panicked at 'Hello', rust-error-panic.rs:2:4
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
In the next example, we shall see how an error will automatically call the macro panic!()
. Here, we shall refer to an array index that is not present.
A program which abort the program(macro panic!()
is called in the background automatically)
fn main() {
let a = [1,2,3];
a[4];
}
In the above program, we have declared an array whose size of 3. This array has an index starting from 0 to 2. Now when we tried to print the element from an index 4, which is not present, we are creating an error for the program flow and it is non-recoverable. Therefore, the macro panic()! is called to abort the program.
Program Output :
error: index out of bounds: the len is 3 but the index is 4
--> rust-error-panic-calling.rs:3:4
|
3 | a[4];
| ^^^^
|
= note: #[deny(const_err)] on by default
error: aborting due to previous error
Using panic!() intentionally
This can be explained by considering the example below, where we use the macro panic!(), if the program flow is transferred in an else
block of an if-else
program.
fn main() {
let number = 123;
if number == 123 {
println!("Number is same");
}
else {
panic!("Number is not same. Panic is invoked");
}
}
Program Output :
thread 'main' panicked at 'Number is not same. Panic is invoked', rust-error-panic-invoke.rs:7:9
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
Recoverable Errors are those errors that can be handled by the compiler. When this kind of error occurs, then the enum — Result <T,E>
.
The enum Result <T, E> has two variants- T and E which are generic parameters. If in case, there are no errors then the variant T will be returned. Otherwise, the variant E will be returned.
Syntax :
enum Result<T,E> {
OK(T),
Err(E)
}
Program to search for a file
use std::fs::File;
fn main() {
let file = File::open("my_pic01.jpg");
match file {
Ok(file) => {
println!("file found {:?}", file);
},
Err(err) => {
println!("file not found {:?}", err);
}
}
println!("Hello! The program is still in flow.The error was handled properly");
}
In the above program we are willing to search for a file, which is not present inside the directory. And thus it is an error. Now the way to handle the error is to execute the Err
part, and so that the error is handled and then the program flows normally.
Program Output :
file not found
Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }
Hello! The program is still in flow.The error was handled properly
unwrap()
The function unwrap()
returns a panic if an operation fails along with printing the default error message. Otherwise, it will return the actual result.
A program to check whether a number is even
fn main() {
let result = check(8).unwrap();
println!("Our check returned a {} result", result);
}
fn check(no: i32) - > Result < bool, bool > {
if no % 2 == 0 {
return Ok(true);
} else {
return Err(false);
}
}
In the above program, we have concatenated the function unwrap()
, with the function in operation check()
. The function check(), returns an enum that has two default variants- OK and Err. When the check functions return a true, that is when the number is even, then the OK
part is executed and the keyword true
is returned.
On the other hand, when the check()
function returns a false, then the macro unwrap()
is automatically invoked to print the error message.
Program Output :
Case1 : When the number is even (TRUE case)
Program Output :
Case 1: When the number is not even (FALSE case)
thread 'main' panicked at 'called `Result::unwrap()` on
an `Err` value: false', srclibcore
esult.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
expect()
Using the function expect()
, we can generate custom message for an error. This is helpful, because the compiler generated messages are somewhat very technical and may not be always understood by everyone.
A program to check whether an integer is even (FALSE Case)
fn main() {
let result = check(81).expect("Error, this is a custom error message");
println!("Our check returned a {} result", result);
println!("Hello, there was no error. Let us continue..");
}
fn check(no: i32) -> Result < bool, bool > {
if no % 2 == 0 {
return Ok(true);
} else {
return Err(false);
}
}
Program Out (When the function check()
returns a false)
C:UsersHPcheckersrc>rust-error-expect
thread 'main' panicked at 'Error, this is a custom error message: false', srclibcore
esult.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
0 results
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
hotaryuzaki opened this issue
Nov 19, 2020
· 37 comments
Comments
because there is no solution works (i already check all solution available)
and maybe different issue although same error message.
i decide to create new issue report.
my apps already using google sign in before with Google API (not using firebase), so here i want to change to this library.
sooo, i already have:
- Client ID
- SHA-1 in my client ID
- support email in OAuth consent screen
so i can say many of offered solution wouldn’t work for me.
1 thing i suspicious here is Verification Status of OAuth consent screen, when i check the status is need to re-verify.
So right now the status is «Verification in progress»
is it could be the problem?
oooh, my credential type is android, that is why i have SHA-1 in my client ID.
i tried create new credential type web application, as i read that webClientId HAS TO BE of type WEB.
But not works either.
And i’m confused, if it has to be Web. Where i have to input my SHA-1????
is not mention how i need to configure(options) if i using Google API
i solved the problem, for me this is because confusing docs.
how to use Firebase setup and how to use Google API setup, the docs not well organized
what i have done,
- create new API for web application type in my project, let all URI empty.
- copy client ID and put in strings.xml in android folder.
- put GoogleSignin.configure() with empty option in App.js
- call GoogleSignin.signIn() as you need.
NO FINGERPRINT (SHA-1) NEED
NO FIREBASE NEED
NO SUPPORT EMAIL NEED (as i know when i tried with new project in Google API)
WORKS IN ANDROID API 28, 29, 30
DONE!!
conclution: actually is simple, but the docs makes it hard.
SYSTEM SPEC:
- react-native-google-signin 2.1.1
- Expo 37.0 (bare workflow)
- RN 0.61.5
andddd.. the error is back.
i dont know whyyyyyyyy.
andddd.. the error is back.
i dont know whyyyyyyyy.
ok, i have to add SHA-1 for debug keystore in google API.
so, all keystore has to registered and all of them using 1 webClientID.
so i need clarify my comment above:
NO FINGERPRINT (SHA-1) NEED
this was not correct because in my report issue above i mention that i already had (in the same Project),
so in my first solution was to create Web application Oauth and using that client ID as webClientID.
NO SUPPORT EMAIL NEED (as i know when i tried with new project in Google API)
i’m using old project google API that this was already done if i checked.
now, in OAuth 2.0 Client IDs i have 3 ID; for web client, for SHA-1 release and for SHA-1 debug.
we will add more SHA-1 if someday we using same webClientID in other apps.
so the conclusion to make this work:
- create OAuth 2.0 Client ID for web application type, let all URI empty (you have to if you did not set in Oauth Consent Screen)
- copy client ID and put in strings.xml in android folder, string name = server_client_id.
then set GoogleSignin.configure() with empty option in App.js
or…
I prefer copy client ID and set as webClientID object inside GoogleSignin.configure() in App.js. - create OAuth 2.0 Client ID for all your SHA-1 keystore (release, debug, etc) in Google API Oauth (or in Firebase)
- call GoogleSignin.signIn() as you need.
[FIXED]
HOW TO CHECK ALL SHA-1 IN OUR APPS:
check all SHA-1 with
./gradlew signingReport
find «> Task :app:signingReport» and add all of SHA-1 to Google API Oauth or in Firebase.
SYSTEM SPEC:
react-native-google-signin 2.1.1
Expo 39.0 (bare workflow)
RN 0.63.4
@hotaryuzaki should i use Oauth web client or android client?
@hotaryuzaki should i use Oauth web client or android client?
we need both,
web client in point 1
android in point 3
and what i should assign to GoogleSignIn.Configuration
This was referenced
Jan 27, 2021
I’m confused. About the second step, what should I name the string?
I’m confused. About the second step, what should I name the string?
Oh sorry, my bad.
string name = server_client_id
(I will update the step above)
But actually it’s optional,
If you prefer you could add inside GoogleSignin.configure({ webClientID: «xxx» }).
I prefer this one because I can update with OTA.
@hotaryuzaki In step 3, where do I have to put the android client id?
@hotaryuzaki In step 3, where do I have to put the android client id?
No you don’t have to
Create new SHA and done no error will appear.
Create new SHA and done no error will appear.
i think create a new SHA is not a solution.
Yes you can done it, but SHA is one time only in Play store.
If you create new one so is a new (other) apps than the previous one.
if your apps not in Play store already, so it is ok to create a new one
@hotaryuzaki Thank you so much for making and updating this post, after hours of banging my head against the wall, this unblocked me. Much appreciated 🙏
I would suggest that the documentation itemize how to setup with with the Google Oauth Client, without Firebase.
@hotaryuzaki Thank you so much for making and updating this post, after hours of banging my head against the wall, this unblocked me. Much appreciated 🙏
I would suggest that the documentation itemize how to setup with with the Google Oauth Client, without Firebase.
You’re welcome.
Still doesn’t work for me, tried all possible methods
Still doesn’t work for me, tried all possible methods
are you already check you do the right things as i mention?
@hotaryuzaki In step 3, where do I have to put the android client id?
No you don’t have to
@hotaryuzaki I’m not clear. If I don’t have to put them. Why do even I need them?
@hotaryuzaki In step 3, where do I have to put the android client id?
No you don’t have to
@hotaryuzaki I’m not clear. If I don’t have to put them. Why do even I need them?
We don’t need that, but google need our SHA-1.
If we have multiple devices so we need add all SHA-1 in step 3 to make it works.
@hotaryuzaki In step 3, where do I have to put the android client id?
No you don’t have to
@hotaryuzaki I’m not clear. If I don’t have to put them. Why do even I need them?
We don’t need that, but google need our SHA-1.
If we have multiple devices so we need add all SHA-1 in step 3 to make it works.
But Google allowing only one SHA-1 fingerprint for one package name. How could I add for release and debug SHA-1 for the same package name?
@hotaryuzaki In step 3, where do I have to put the android client id?
No you don’t have to
@hotaryuzaki I’m not clear. If I don’t have to put them. Why do even I need them?
We don’t need that, but google need our SHA-1.
If we have multiple devices so we need add all SHA-1 in step 3 to make it works.But Google allowing only one SHA-1 fingerprint for one package name. How could I add for release and debug SHA-1 for the same package name?
That’s exactly my question!
The problem was in my emulator, it did not have play store =/
@hotaryuzaki In step 3, where do I have to put the android client id?
No you don’t have to
@hotaryuzaki I’m not clear. If I don’t have to put them. Why do even I need them?
We don’t need that, but google need our SHA-1.
If we have multiple devices so we need add all SHA-1 in step 3 to make it works.But Google allowing only one SHA-1 fingerprint for one package name. How could I add for release and debug SHA-1 for the same package name?
Please to make it clear, don’t say just google.
Playstore or google API.
what I mean is google API, add all your SHA-1 there.
Create OAuth 2.0 Client for Android for each SHA-1.
As far as I remember those what I did, I don’t know if google change their setting for this.
maybe later I would give you a screenshot.
UPDATE:
i can confirm my android debug and android client 1 has same package name, i created at jan 2021
The problem was in my emulator, it did not have play store =/
In android studio there is emulator with playstore.
i tried every possible solution that exits but still getting the same error , help required
i tried every possible solution that exits but still getting the same error , help required
I think the issue must be reopened
FIXED Android — [Error: A non-recoverable sign in failure occurred]
I just solved this issue by deleting existing app for android in firebase console and add it again . copy google_service.json file again to your project .
voila*
Login working fine 🙏🙏
I am also facing same issue.
In my case the library work fine in simple project but in my real project this library return error the [Error: A non-recoverable sign in failure occurred]
in my project firebase google addmob also used.
I was getting the same error, I added a support email address on the firebase console and now the error is gone.
I am also facing same issue.
i was also getting the same error. It is due to the non availability of Google Api’s. before i tried it with pixel 4a, now i tried it with pixel xl api 29. It worked for me
same problem.
pixel 4 with play store and pixel 5, (os version R). both same problem.
on localhost and react native 0.66.
tried
- deleting existing app for android in firebase console and add it again . copy google_service.json file again to your project .
- i have support email in firebase > project settings > general tab > support email
fml… it was android emulator not connected to the internet. look at your simulator wifi if its connected.
then
emulator -list-avds
emulator -avd <emu name from above> -dns-server 8.8.8.8
<— connects simulator to the internet.
same problem. pixel 4 with play store and pixel 5, (os version R). both same problem. on localhost and react native 0.66. tried
- deleting existing app for android in firebase console and add it again . copy google_service.json file again to your project .
- i have support email in firebase > project settings > general tab > support email
fml… it was android emulator not connected to the internet. look at your simulator wifi if its connected. then
emulator -list-avds
emulator -avd <emu name from above> -dns-server 8.8.8.8
<— connects simulator to the internet.
Thanks
I had this issue since 3days. I just solved it ! It was an issue related to the generated SHA1. I noticed that keytool was generating the same SHA1 for all my apps. So I guess this error was occurring because that SHA1 was already registered with an existing app in firebase.
STEPS TO FIX:
- Delete debug.keystore (it will be auto-generated):
For Windows: C:UsersUSERNAME.androiddebug.keystore (Change USERNAME as your pc name)
For Linux or Mac OS: ~/.android/debug.keystore - Delete debug.keystore of your app: APPNAME/android/app/debug.keystore
- Generate a new debug.keystore by running this command in the android/app/ directory: keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
- Generate SHA1 by running this command in the android/app/ directory: keytool -list -v -keystore ./debug.keystore -alias androiddebugkey -storepass android -keypass android (command for MAC)
- Add the SHA1 into your android project on firebase console
- Download google-services.json and replace it on your react native project.
- uninstall the app
- run ./gradlew clean
- run npx react-native run-android
Hope it will work as well for you !
I had this issue since 3days. I just solved it ! It was an issue related to the generated SHA1. I noticed that keytool was generating the same SHA1 for all my apps. So I guess this error was occurring because that SHA1 was already registered with an existing app in firebase.
STEPS TO FIX:
- Delete debug.keystore (it will be auto-generated):
For Windows: C:UsersUSERNAME.androiddebug.keystore (Change USERNAME as your pc name)
For Linux or Mac OS: ~/.android/debug.keystore- Delete debug.keystore of your app: APPNAME/android/app/debug.keystore
- Generate a new debug.keystore by running this command in the android/app/ directory: keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
- Generate SHA1 by running this command in the android/app/ directory: keytool -list -v -keystore ./debug.keystore -alias androiddebugkey -storepass android -keypass android (command for MAC)
- Add the SHA1 into your android project on firebase console
- Download google-services.json and replace it on your react native project.
- uninstall the app
- run ./gradlew clean
- run npx react-native run-android
Hope it will work as well for you !
Right