@@ -21,7 +21,7 @@ var NetworkHeadRequestTimeout = time.Second * 2
21
21
func (s * Syncer [H ]) Head (ctx context.Context , _ ... header.HeadOption [H ]) (H , error ) {
22
22
netHead , updated , err := s .networkHead (ctx )
23
23
if err != nil {
24
- return netHead , err
24
+ return netHead , fmt . Errorf ( "network head: %w" , err )
25
25
}
26
26
if ! updated {
27
27
return netHead , nil
@@ -52,7 +52,7 @@ func (s *Syncer[H]) Head(ctx context.Context, _ ...header.HeadOption[H]) (H, err
52
52
func (s * Syncer [H ]) networkHead (ctx context.Context ) (H , bool , error ) {
53
53
sbjHead , initialized , err := s .subjectiveHead (ctx )
54
54
if err != nil {
55
- return sbjHead , false , err
55
+ return sbjHead , false , fmt . Errorf ( "subjective head: %w" , err )
56
56
}
57
57
if isRecent (sbjHead , s .Params .blockTime , s .Params .recencyThreshold ) || initialized {
58
58
return sbjHead , initialized , nil
@@ -124,15 +124,16 @@ func (s *Syncer[H]) subjectiveHead(ctx context.Context) (H, bool, error) {
124
124
"expired_height" ,
125
125
sbjHead .Height (),
126
126
)
127
+ case err != nil :
128
+ return sbjHead , false , fmt .Errorf ("local head: %w" , err )
127
129
default :
128
- // success or unknown error case
129
- return sbjHead , false , err
130
+ return sbjHead , false , nil
130
131
}
131
132
132
133
s .metrics .subjectiveInitialization (ctx )
133
134
newHead , err := s .head .Head (ctx )
134
135
if err != nil {
135
- return newHead , false , err
136
+ return newHead , false , fmt . Errorf ( "exchange head: %w" , err )
136
137
}
137
138
// still check if even the newly requested head is expired
138
139
if isExpired (newHead , s .Params .TrustingPeriod ) {
0 commit comments