web3j
web3j copied to clipboard
Invalid request: filter not found
Bug_title
Invalid request: filter not found
Steps To Reproduce
Use ethLogFlowable to listen for contracts
Expected behavior
expected not Invalid request: filter not found
Actual behavior
Invalid request: filter not found
Environment
Describe the environment in which the issue occurs
- Web3j 4.8.8
- Java 8
- Operating System windows
Additional context
Add any other context about the problem here.
- Logs
org.web3j.protocol.core.filters.FilterException: Invalid request: filter not found at org.web3j.protocol.core.filters.Filter.throwException(Filter.java:194) at org.web3j.protocol.core.filters.Filter.getInitialFilterLogs(Filter.java:120) at org.web3j.protocol.core.filters.Filter.run(Filter.java:69) at org.web3j.protocol.core.filters.Filter.reinstallFilter(Filter.java:159) at org.web3j.protocol.core.filters.Filter.pollFilter(Filter.java:141) at org.web3j.protocol.core.filters.Filter.lambda$run$0(Filter.java:92) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
- Sample code
-
EthFilter filter = new EthFilter( DefaultBlockParameterName.LATEST, DefaultBlockParameterName.LATEST, "address"); Disposable disposed = web3j.ethLogFlowable(filter).subscribe(log -> { System.out.println("区块高度-----"+log.getBlockNumber()); System.out.println("交易hash---"+ log.getTransactionHash()); },error ->{ error.printStackTrace(); });
- Unit/integration tests to highlight the issue
- etherscan references
Same issue.
Environment
- Java 13.
- Web3j 4.9.1
GeneratedContractERC721.transferEventFlowable(filter).blockingForEach(item -> { if(item.to.equalsIgnoreCase("<here I'm using first test user address>".toLowerCase(Locale.ROOT)) && item.from.equalsIgnoreCase("<here I'm using second test user address>")) { System.out.println(true); } });
Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) Caused by: org.web3j.protocol.core.filters.FilterException: Invalid request: filter not found at org.web3j.protocol.core.filters.Filter.throwException(Filter.java:194) at org.web3j.protocol.core.filters.Filter.getInitialFilterLogs(Filter.java:120) at org.web3j.protocol.core.filters.Filter.run(Filter.java:69) at org.web3j.protocol.rx.JsonRpc2_0Rx.run(JsonRpc2_0Rx.java:89) at org.web3j.protocol.rx.JsonRpc2_0Rx.lambda$ethLogFlowable$2(JsonRpc2_0Rx.java:79) at io.reactivex.internal.operators.flowable.FlowableCreate.subscribeActual(FlowableCreate.java:71) at io.reactivex.Flowable.subscribe(Flowable.java:14935) at io.reactivex.internal.operators.flowable.FlowableMap.subscribeActual(FlowableMap.java:37) at io.reactivex.Flowable.subscribe(Flowable.java:14935) at io.reactivex.internal.operators.flowable.BlockingFlowableIterable.iterator(BlockingFlowableIterable.java:42) at io.reactivex.Flowable.blockingForEach(Flowable.java:5772)
Error not systematic, looks like random error
https://github.com/web3j/web3j/pull/1679