Devido à forma como o S3 distribui os dados, uma vez que eles são carregados e como eles balancear a carga de suas solicitações de front-end, seria perfeitamente possível que um objeto levasse alguns segundos para se propagar completamente em torno de sua infraestrutura. Eu recomendaria apenas colocar um atraso de alguns segundos em sua lógica (entre o upload e a recuperação) ou, possivelmente, apenas detectar uma falha, em seguida, aguarde alguns segundos e tente novamente.