TrickyRaccoon92 , Hi!
Yes I believe this is the intended behavior. Since if you upload automatically you can upload many artifacts during a single run, whereas when you upload manually you create the object yourself.
TrickyRaccoon92 , after looking in the documentation a bit more it seems I am a bit wrong.
If you look here: https://clear.ml/docs/latest/docs/references/sdk/task/#upload_artifact
there is a parameter called wait_on_upload
which is set by default to false. If you set it to 'True' then you should get the artifact object as well. This is due to the artifacts upload being asynchronous and I'm guessing the artifact didn't finish uploading by the time you called it.