# "Data Error" Show button goes to wrong log

**URL:** <https://forum.duplicati.com/t/data-error-show-button-goes-to-wrong-log/2832>\
**Category:** UX\
**Created:** [March 10, 2018, 12:45pm UTC](https://forum.duplicati.com/t/data-error-show-button-goes-to-wrong-log/2832 "2018-03-10T12:45:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![JonMikelV](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/j/439d5e/32.png) [@JonMikelV](https://forum.duplicati.com/u/JonMikelV)\
**Post date:** [March 10, 2018, 12:45pm UTC](https://forum.duplicati.com/t/data-error-show-button-goes-to-wrong-log/2832/1 "2018-03-10T12:45:24Z")

</div>

I just got this error “window” when running a local SFTP based backup:

> Error while running My Backup  
> Data Error

Clicking the “Show” button takes me to the General job log which shows normal messages but no errors, however manually going to the main menu “About → Show Log → Stored” logs reveals a number of errors ending with this one:

```plaintext
Mar 9, 2018 10:39 AM: Failed while executing "Backup" with id: 4
SharpCompress.Compressors.LZMA.DataErrorException: Data Error
   at SharpCompress.Compressors.LZMA.LzmaStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at Duplicati.Library.Utility.Utility.ForceStreamRead(Stream stream, Byte[] buf, Int32 count)
   at Duplicati.Library.Main.Volumes.BlockVolumeReader.ReadBlock(String hash, Byte[] blockbuffer)
   at Duplicati.Library.Main.Operation.CompactHandler.DoCompact(LocalDeleteDatabase db, Boolean hasVerifiedBackend, IDbTransaction& transaction, BackendManager sharedBackend)
   at Duplicati.Library.Main.Operation.DeleteHandler.DoRun(LocalDeleteDatabase db, IDbTransaction& transaction, Boolean hasVerifiedBacked, Boolean forceCompact, BackendManager sharedManager)
   at Duplicati.Library.Main.Operation.BackupHandler.CompactIfRequired(BackendManager backend, Int64 lastVolumeSize)
   at Duplicati.Library.Main.Operation.BackupHandler.Run(String[] sources, IFilter filter)
   at Duplicati.Library.Main.Controller.<>c __DisplayClass17_0.<Backup>b__ 0(BackupResults result)
   at Duplicati.Library.Main.Controller.RunAction[T](T result, String[]& paths, IFilter& filter, Action`1 method)
   at Duplicati.Library.Main.Controller.Backup(String[] inputsources, IFilter filter)
   at Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)

```

The other errors are `ThreadAbort` and (I assume related) `TextWriter` errors such as:

```plaintext
Mar 9, 2018 9:21 AM: Reporting error gave error
System.ObjectDisposedException: Cannot write to a closed TextWriter.
   at System.IO.__Error.WriterClosed()
   at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
   at Duplicati.Server.WebServer.RESTHandler.DoProcess(RequestInfo info, String method, String module, String key)

```

So I’m wondering:

1. Is it possible for the notification to link to the appropriate log
2. Since it appears some errors cause notifications and some don’t (meaning I’m guessing as to which error the notification is related), would it make sense to either auto-expand the notified error or at least include the error time with the notification?

* * *

For completeness I will say that there are two other topics showing this error, but in this case I’m asking about the general user experience - not the error itself.

> [@SharpCompress.Compressors.LZMA.DataErrorException](https://forum.duplicati.com/t/sharpcompress-compressors-lzma-dataerrorexception/2502):
>
> Hello, I have received these errors: Feb 14, 2018 7:22 PM: Fatal error {“ClassName”:“SharpCompress.Compressors.LZMA.DataErrorException”,“Message”:“Data Error”,“Data”:null,“InnerException”:null,“HelpURL”:null,“StackTraceString”:" at SharpCompress.Compressors.LZMA.LzmaStream.Read(Byte buffer, Int32 offset, Int32 count)\r\n at Duplicati.Library.Utility.Utility.ForceStreamRead(Stream stream, Byte buf, Int32 count)\r\n at Duplicati.Library.Main.Volumes.BlockVolumeReader.ReadBlock(String has…

> [@Compacting because there are 21 small volumes and the maximum is 20](https://forum.duplicati.com/t/compacting-because-there-are-21-small-volumes-and-the-maximum-is-20/1600/6):
>
> I found only this error in common log SharpCompress.Compressors.LZMA.DataErrorException: Data Error at SharpCompress.Compressors.LZMA.LzmaStream.Read(Byte[] buffer, Int32 offset, Int32 count) at Duplicati.Library.Utility.Utility.ForceStreamRead(Stream stream, Byte[] buf, Int32 count) at Duplicati.Library.Main.Volumes.BlockVolumeReader.ReadBlock(String hash, Byte[] blockbuffer) at Duplicati.Library.Main.Operation.CompactHandler.DoCompact(LocalDeleteDatabase db, Boolean hasVerifiedBac…

---

<div class="post-metadata">

**Author:** ![Ingmyv](https://forum.duplicati.com/user_avatar/forum.duplicati.com/ingmyv/32/3419_2.png) [@Ingmyv](https://forum.duplicati.com/u/Ingmyv)\
**Post date:** [March 12, 2018, 1:08am UTC](https://forum.duplicati.com/t/data-error-show-button-goes-to-wrong-log/2832/2 "2018-03-12T01:08:59Z")

</div>

Hello, I’m one of the folks who is linked in the post.

I have to agree that I was a bit puzzled when i was trying to diagnose this problem due to the odd way the logs are handled.

I do notice that each error does seem to have a unique “ID” and a key to the operations table.

```
select ld.id as "ld.id", ld.OperationID, o.Description, DATETIME(ld.timestamp,'unixepoch') as "Timestamp",
substr(ld.Message,0,25) || '...' as "Message", substr(ld.exception,0,25) || '...' as "Exception"
from 
	logdata ld
left join
	operation o on o.ID = ld.OperationID
where ld."Exception" is not null
	limit 10;

```

| ld.id | OperationID | Description | Timestamp | Message | Exception |
| --- | --- | --- | --- | --- | --- |
| 1407 | 1167 | Backup | 2018-02-15 21:40:47 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1408 | 1237 | Backup | 2018-02-15 22:45:05 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1409 | 1370 | Backup | 2018-02-16 00:51:01 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1410 | 1372 | Backup | 2018-02-16 00:54:15 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1411 | 1373 | Backup | 2018-02-16 00:55:19 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1412 | 1374 | Backup | 2018-02-16 00:56:32 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1413 | 1375 | Backup | 2018-02-16 00:57:47 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1414 | 1376 | Backup | 2018-02-16 00:58:57 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1415 | 1377 | Backup | 2018-02-16 01:00:13 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |
| 1416 | 1378 | Backup | 2018-02-16 01:01:27 | Failed to create a snaps… | Alphaleonis.Win32.Vss.Vs… |

So, it seems like the system should easily be able to do “where operationID=foo” and get all the errors associated with a specific issue.

(And, if I may expand on this suggestion,

- It would be nice if the error ID was included in the UI, however this might result in people posting in the forums “I got error 1407,” thinking that it’s a “type” of error.
- Generally, I’m a bit unclear on which logs are stored where and what kind of events go in them. What is “Show Log \> Stored” vs Home\> Expand Backup \> Show Log, they seem to be different.
- The distinction between “General” and “remote” and “stored” and “live” also seems unclear. Where do the “live” logs go? If I navigate away the seem to vanish forever.  
)

Thanks

---

<div class="post-metadata">

**Author:** ![JonMikelV](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/j/439d5e/32.png) [@JonMikelV](https://forum.duplicati.com/u/JonMikelV)\
**Post date:** [March 12, 2018, 5:09pm UTC](https://forum.duplicati.com/t/data-error-show-button-goes-to-wrong-log/2832/3 "2018-03-12T17:09:21Z")

</div>

It sounds like the foundations for this may already be in the works. 😃

> [@\[Feature Request\] Help parsing multiple errors](https://forum.duplicati.com/t/feature-request-help-parsing-multiple-errors/2850/2):
>
> Some of this is related to what kind of information that the destination (Google Drive in this case) returns. We try to relay whatever information is there, but sometimes there is not good information. I am however putting the last touches on a change to all error messages and log messages, which includes an ID for each known error. The idea is that we can present better information to the user, if we know exactly (programatically speaking) what error occured.
