а включите побольше дебага, что оказывается в fetch_artifact в первом проходе таски, при наличие файла на сервере?
И при наличии until, и при отсутствии fetch_artifact возвращает
ok: [group1-host] => {
"changed": false,
"dest": "/data/archive.zip",
"gid": 31861,
"group": "group1",
"invocation": {
"module_args": {
"attributes": null,
"backup": null,
"checksum": "md5:b4851d48c2a45d9d53116db039f630a4",
"client_cert": null,
"client_key": null,
"content": null,
"delimiter": null,
"dest": "/data/archive.zip",
"directory_mode": null,
"follow": false,
"force": false,
"force_basic_auth": false,
"group": null,
"headers": "X-JFrog-Art-Api: xxx",
"http_agent": "ansible-httpget",
"mode": null,
"owner": null,
"regexp": null,
"remote_src": null,
"selevel": null,
"serole": null,
"setype": null,
"seuser": null,
"sha256sum": "",
"src": null,
"timeout": 10,
"tmp_dest": null,
"unsafe_writes": null,
"url": "http://xxx.ru/archive.zip",
"url_password": null,
"url_username": null,
"use_proxy": true,
"validate_certs": true
}
},
"mode": "0664",
"msg": "file already exists",
"owner": "perf",
"size": 475190739,
"state": "file",
"uid": 31861,
"url": "http://xxx.ru/archive.zip"
Только в случае с until такой возврат интерпретируется как ошибка.