diff --git a/rpc/api.go b/rpc/api.go
index 478ca875219bdb8db5748b679181593859c54c0d..20299bef1ed761c508d0974c0cb8386be2e9b56b 100644
--- a/rpc/api.go
+++ b/rpc/api.go
@@ -238,6 +238,10 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 		}
 
 		br := NewBlockRes(api.xeth().EthBlockByHash(args.Hash), false)
+		if br == nil {
+			*reply = nil
+			return nil
+		}
 
 		if args.Index >= int64(len(br.Uncles)) || args.Index < 0 {
 			return NewValidationError("Index", "does not exist")
@@ -256,6 +260,11 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 		block := api.xeth().EthBlockByNumber(args.BlockNumber)
 		v := NewBlockRes(block, true)
 
+		if v == nil {
+			*reply = nil
+			return nil
+		}
+
 		if args.Index >= int64(len(v.Uncles)) || args.Index < 0 {
 			return NewValidationError("Index", "does not exist")
 		}