Open madumas opened 1 year ago
thanks @madumas! @mangas checking if this is the currently expected behaviour, or if we have some error handling in place for substreams?
We currently don't have this information surfaced through the GRPC types. The current Error definition looks like this:
message Error {
string module = 1;
string reason = 2;
repeated string logs = 3;
// FailureLogsTruncated is a flag that tells you if you received all the logs or if they
// were truncated because you logged too much (fixed limit currently is set to 128 KiB).
bool logs_truncated = 4;
}
The correct way to handle this would be for a deterministic flag (or similar) to be added so that the graph-node can treat it as such.
@mangas we don't need a flag: the condition is in the Error Code:
code = InvalidArgument
Invalid Argument is returned from Substreams when the error is "not due to the state of the system".
I'm not certain why you are getting "Status: Unknown" however... I will investigate that
The GRPC issue has been fixed in substreams, pulled to firehose-core https://github.com/streamingfast/firehose-core/releases/tag/v0.2.4
Status
field will show as InvalidArgument
instead of Unknown
.
Now, can graph-node be configured to consider "InvalidArgument" status code as a deterministic error ?
@mangas
@sduchesneau is that the only error code which is indicative of a deterministic error?
Looks like this issue has been open for 6 months with no activity. Is it still relevant? If not, please remember to close it.
todo: Investigate status
Bug report
A subgraph-powerered-subgraph that fails with a deterministic error is not properly handled by graph-node. It should detect the error, and report the subgraph as "failed" in a deterministic way. Instead, graph-node reports the subgraph to be healthy and continually retries the substream
graph-node: v0.32.0 firehose-ethereum: v1.4.10
Relevant log output
IPFS hash
QmT2nEwS9YWFzLE39Ujuv2oNVhgbctc8VUtB28RXb4wUbY
Subgraph name or link to explorer
No response
Some information to help us out
OS information
None