HTML UI vs Indirect Object

I have done a snapshot on Windows of the C: drive:
screen

but I cannot see the content from the HTML UI:
screen

My understanding is that the UI is generating the wrong link because the ID starts with an “I” and not the expected “k”. When looking at the source code, it seems that “I” stands for an indirect object. If I manually generate the link (/snapshots/dir/Ikd6ed41cda0b73f6cd7d2dec838409857), I can indeed see the content of the snapshot.

Is this expected? How can I fix it?

With this fix in htmlui, I can now see the content of the snapshot:

$ git diff src/uiutil.jsx
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modified: src/uiutil.jsx
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 @ uiutil.jsx:91 @ export function rfc3339TimestampForDisplay(n) {
 }
 
 export function objectLink(n) {
-    if (n.startsWith("k")) {
+    if (n.startsWith("k") || n.startsWith("Ik")) {
         return "/snapshots/dir/" + n;
     }
     return "/api/v1/objects/" + n;

Is this the correct fix?

The i-prefix indicates, that the snapshot didn’t succeed within the maximum time, in which Kopia considers a snapshot successfull. This happens, if a snapshot, often an initial one, takes too long. Have you tried a successive snapshot.

It quite the same in Kopia CLI, where by default, only completed snapshots will be displayed and incomplete ones require a flag to be shown.

Are you sure?

Because:

  1. As you can see from my screenshot, the snapshot is not marked as “incomplete”

  2. An incomplete snapshot will not have and ID starting with I. This was true on some “incomplete” snapshots that I had and can be seen here

  3. When quickly looking at the source code, it seems that “I” is the prefix of an indirect object (which does not mean incomplete)

  4. Kopia CLI was listing my snapshot

  5. I had the same problem even on successive snapshot, which took only a few minutes

Well… no, not anymore… :wink: How did you stumble across those indirect snapshots?

How did you stumble across those indirect snapshots?

I just did a snapshot on Windows 11 for the C: drive, containing ~250GB of data. The source code is saying that:

// ID is an identifier of a repository object. Repository objects can be stored.
//
// 1. In a single content block, this is the most common case for small objects.
// 2. In a series of content blocks with an indirect block pointing at them (multiple indirections are allowed).
// This is used for larger files. Object IDs using indirect blocks start with “I”

However, I am not sure why my snapshot is considered a “large file” since it is a pretty “standard” machine. I have to dig more into the source code of Kopia to understand why this is happening…