@@ -217,15 +217,16 @@ func (tt *TransactionUploader) UploadChunk() error {
217
217
if err != nil {
218
218
return err
219
219
}
220
- _ , statusCode , err := tt .Client .SubmitChunks (gc )
220
+ body , statusCode , err := tt .Client .SubmitChunks (gc ) // always body is errMsg
221
221
tt .LastRequestTimeEnd = time .Now ().UnixNano () / 1000000
222
222
tt .LastResponseStatus = statusCode
223
223
if statusCode == 200 {
224
224
tt .ChunkIndex ++
225
- } else if err != nil {
226
- tt .LastResponseError = err .Error ()
227
- if _ , ok := types .FATAL_CHUNK_UPLOAD_ERRORS [err .Error ()]; ok {
228
- return errors .New (fmt .Sprintf ("Fatal error uploading chunk %d:%v" , tt .ChunkIndex , err ))
225
+ } else {
226
+ errStr := fmt .Sprintf ("%s,%v,%d" , body , err , statusCode )
227
+ tt .LastResponseError = errStr
228
+ if _ , ok := types .FATAL_CHUNK_UPLOAD_ERRORS [body ]; ok {
229
+ return errors .New (fmt .Sprintf ("Fatal error uploading chunk %d:%v" , tt .ChunkIndex , body ))
229
230
}
230
231
}
231
232
return nil
@@ -315,10 +316,11 @@ func (tt *TransactionUploader) uploadTx(withBody bool) error {
315
316
// Post the Transaction with Data.
316
317
tt .Transaction .Data = utils .Base64Encode (tt .Data )
317
318
}
318
- _ , statusCode , err := tt .Client .SubmitTransaction (tt .Transaction )
319
- if err != nil {
320
- tt .LastResponseError = err .Error ()
321
- return errors .New (fmt .Sprintf ("Unable to upload Transaction: %d, %v" , statusCode , err ))
319
+ body , statusCode , err := tt .Client .SubmitTransaction (tt .Transaction )
320
+ if err != nil || statusCode >= 400 {
321
+ tt .LastResponseError = fmt .Sprintf ("%v,%s" , err , body )
322
+ tt .LastResponseStatus = statusCode
323
+ return errors .New (fmt .Sprintf ("Unable to upload Transaction: %d, %v, %s" , statusCode , err , body ))
322
324
}
323
325
324
326
tt .LastRequestTimeEnd = time .Now ().UnixNano () / 1000000
@@ -328,6 +330,7 @@ func (tt *TransactionUploader) uploadTx(withBody bool) error {
328
330
tt .Transaction .Data = ""
329
331
}
330
332
333
+ // tx already processed
331
334
if statusCode >= 200 && statusCode < 300 {
332
335
tt .TxPosted = true
333
336
if withBody {
0 commit comments