App UI Bug: Can't see project's artifacts when it has no runs

First, you may call it a flaw instead of a bug if you like. Second, I am not sure if this is a bug in the App UI or a flaw in your data model (I am new to WandB). Third, I am not sure if I am supposed to report bugs here, on github, or elsewhere. I could not find a non-public means of communicating this.

Expected behaviour.
I should be able to see all artifacts created and/or used within a given project via App UI (my browser) at all times. If the project has no artifacts, then I should see an explicit indication of that fact, just as on the first screenshot.

Observed behaviour.
The “Artifacts” icon on the side panel disappears when a project has no runs, whether there are artifacts or not. As depicted on the second screenshot.

What I did.
All I did between the first and the second screenshots was deleting the only remaining (and empty) run within this project.

Why the observed behaviour is problematic:

  • If there are no artifacts in the project, I do not get an explicit confirmation of that.
  • I cannot see the remaining artifacts if they still exist.
  • Basically, you are forcing the user to keep a dummy run in a project, so that the bloody icon stays in place. (Figuratively speaking, because it’s not just an icon issue: if you type the /entity/project/artifacts/ in the address bar, you still can’t get there)

Now, you may argue that artifacts are attached to runs, and not to projects, therefore all artifacts created in a project that has become run-less are doomed to be orphaned (i.e., neither “used”, nor “logged” by any run), therefore they will be garbage-collected sooner or later, therefore there is no reason for the Artifacts tab. But this does not make sense for two reasons. First, why not keep the Artifact tab anyways? Second, if the user creates a dummy run so that the Artifact tab comes back, he/she will be able to see the orphaned artifacts, as shown on the third screenshot.
Here’s how I produced the third screenshot. I created a run and “used” a new artifact in this run, all via Python interface. Then I deleted the run, leaving the artifact orphaned. Then I created a new run within the same project, went back to the Artifact tab and found the orphaned artifact from the first run, as on the screenshot. If artifacts are attached to runs and not to projects, why does WandB show the orphaned artifact in this project’s tab?


P.S. Many thanks for all your work and, of course, for making your product available for free. But I can’t help but point out that to facilitate neat and well-organised data science, WandB should be transparent, understandable, and predictable. So far, I have been having a hard time understanding your model and figuring out things like the unexpected difference between wandb.sdk.wandb_run.Run and wandb.apis.public.Run. I can’t understand why any deviation from the simplest use cases and “Best Practices” must be so painful that it may be easier to re-run all experiments in order to correct how they are logged in WandB than to correct the record directly.

Second screenshot.

Third screenshot.

Hi @avm21,

Thanks for reporting this! It does indeed look like a bug on our end. In general, I would start on GitHub for bug reporting, just to see if someone else has already filed the same bug; however, it is totally fine to post bugs and issues here as well. Alternatively if you want to get more direct support you can chat with the support team from our website 5am-5pm PST on Weekdays or email us at support@wandb.com.

Circling back to your issue, I would log a dummy run in the interim so you can see your artifacts in the UI; however, they should still be accessible via the public API and the run.use_artifact() method.

I’ll post back on this thread when I have an update on the bug fix.

All the best,

Aidan

Hi @aidanjd

Thanks for your prompt and to-the-point response! I’ll be checking this thread for any updates.

Kind regards,
avm21

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.