@@ -264,9 +264,9 @@ func resourceRepositoryUpstreamCreate(d *schema.ResourceData, m interface{}) err
264264 req := pc .APIClient .ReposApi .ReposUpstreamDockerCreate (pc .Auth , namespace , repository )
265265
266266 // Read certificate files for mTLS authentication (Docker only for now)
267- authCert , authCertKey , err := readCertificateFiles (d )
268- if err != nil {
269- return err
267+ authCert , authCertKey , certErr := readCertificateFiles (d )
268+ if certErr != nil {
269+ return certErr
270270 }
271271
272272 req = req .Data (cloudsmith.DockerUpstreamRequest {
@@ -286,7 +286,15 @@ func resourceRepositoryUpstreamCreate(d *schema.ResourceData, m interface{}) err
286286 UpstreamUrl : upstreamUrl ,
287287 VerifySsl : verifySsl ,
288288 })
289- upstream , resp , err = pc .APIClient .ReposApi .ReposUpstreamDockerCreateExecute (req )
289+ var execErr error
290+ upstream , resp , execErr = pc .APIClient .ReposApi .ReposUpstreamDockerCreateExecute (req )
291+ if execErr != nil {
292+ if resp != nil && resp .StatusCode == http .StatusInternalServerError {
293+ // Until we handle this better in API response we have to assume that this is the issue
294+ return fmt .Errorf ("this `upstream_url` might be already configured for this repository. %w" , execErr )
295+ }
296+ return execErr
297+ }
290298 case Helm :
291299 req := pc .APIClient .ReposApi .ReposUpstreamHelmCreate (pc .Auth , namespace , repository )
292300 req = req .Data (cloudsmith.HelmUpstreamRequest {
@@ -677,9 +685,9 @@ func resourceRepositoryUpstreamUpdate(d *schema.ResourceData, m interface{}) err
677685 req := pc .APIClient .ReposApi .ReposUpstreamDockerUpdate (pc .Auth , namespace , repository , slugPerm )
678686
679687 // Read certificate files for mTLS authentication (Docker only for now)
680- authCert , authCertKey , err := readCertificateFiles (d )
681- if err != nil {
682- return err
688+ authCert , authCertKey , certErr := readCertificateFiles (d )
689+ if certErr != nil {
690+ return certErr
683691 }
684692
685693 req = req .Data (cloudsmith.DockerUpstreamRequest {
@@ -699,7 +707,11 @@ func resourceRepositoryUpstreamUpdate(d *schema.ResourceData, m interface{}) err
699707 UpstreamUrl : upstreamUrl ,
700708 VerifySsl : verifySsl ,
701709 })
702- upstream , _ , err = pc .APIClient .ReposApi .ReposUpstreamDockerUpdateExecute (req )
710+ var execErr error
711+ upstream , _ , execErr = pc .APIClient .ReposApi .ReposUpstreamDockerUpdateExecute (req )
712+ if execErr != nil {
713+ return execErr
714+ }
703715 case Helm :
704716 req := pc .APIClient .ReposApi .ReposUpstreamHelmUpdate (pc .Auth , namespace , repository , slugPerm )
705717 req = req .Data (cloudsmith.HelmUpstreamRequest {
0 commit comments