diff --git a/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_proxy.go b/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_proxy.go index 930d68349..30b8a82e8 100644 --- a/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_proxy.go +++ b/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_proxy.go @@ -270,7 +270,13 @@ func deleteArchitectUserPromptResourceFn(_ context.Context, p *architectUserProm return p.architectApi.DeleteArchitectPromptResource(id, languageCode) } -func createOrUpdateArchitectUserPromptResourcesFn(ctx context.Context, p *architectUserPromptProxy, d *schema.ResourceData, promptId string, create bool) (*platformclientv2.APIResponse, error) { +func createOrUpdateArchitectUserPromptResourcesFn(ctx context.Context, p *architectUserPromptProxy, d *schema.ResourceData, promptId string, create bool) (_ *platformclientv2.APIResponse, err error) { + defer func() { + if err != nil { + err = fmt.Errorf("in createOrUpdateArchitectUserPromptResourcesFn: %w", err) + } + }() + var allLanguages []string resourcesToCreate, resourcesToUpdate, resourcesToDelete, resp, err := p.buildUserPromptResourcesForCreateAndUpdate(ctx, d, promptId, create) @@ -279,13 +285,14 @@ func createOrUpdateArchitectUserPromptResourcesFn(ctx context.Context, p *archit } for _, r := range resourcesToCreate { + var resource *platformclientv2.Promptasset log.Printf("Creating user prompt resource for language: %s", *r.Language) - resource, resp, err := p.createArchitectUserPromptResource(ctx, promptId, r) + resource, resp, err = p.createArchitectUserPromptResource(ctx, promptId, r) if err != nil { - return resp, fmt.Errorf("failed to create user prompt resource for language '%s': %v", *r.Language, err) + return resp, fmt.Errorf("failed to create user prompt resource for language '%s': %w", *r.Language, err) } - if err := p.retrieveFilenameAndUploadPromptAsset(ctx, resource); err != nil { + if err = p.retrieveFilenameAndUploadPromptAsset(ctx, resource); err != nil { return nil, err } @@ -293,13 +300,14 @@ func createOrUpdateArchitectUserPromptResourcesFn(ctx context.Context, p *archit } for _, r := range resourcesToUpdate { + var resource *platformclientv2.Promptasset log.Printf("Updating user prompt resource for language: %s", *r.Language) - resource, resp, err := p.updateArchitectUserPromptResource(ctx, d.Id(), *r.Language, r) + resource, resp, err = p.updateArchitectUserPromptResource(ctx, d.Id(), *r.Language, r) if err != nil { - return resp, fmt.Errorf("failed to update user prompt resource for language '%s': %v", *r.Language, err) + return resp, fmt.Errorf("failed to update user prompt resource for language '%s': %w", *r.Language, err) } - if err := p.retrieveFilenameAndUploadPromptAsset(ctx, resource); err != nil { + if err = p.retrieveFilenameAndUploadPromptAsset(ctx, resource); err != nil { return nil, err } @@ -308,15 +316,18 @@ func createOrUpdateArchitectUserPromptResourcesFn(ctx context.Context, p *archit for _, language := range resourcesToDelete { log.Printf("Deleting user prompt resource for language: %s", language) - resp, err := p.deleteArchitectUserPromptResource(ctx, d.Id(), language) + resp, err = p.deleteArchitectUserPromptResource(ctx, d.Id(), language) if err != nil { - return resp, fmt.Errorf("failed to delete user prompt resource for language '%s': %v", language, err) + return resp, fmt.Errorf("failed to delete user prompt resource for language '%s': %w", language, err) } removeByValue(allLanguages, language) } - return p.verifyPromptResourceFilesAreTranscoded(ctx, promptId, allLanguages) + if _, verifyErr := p.verifyPromptResourceFilesAreTranscoded(ctx, promptId, allLanguages); verifyErr != nil { + log.Printf("Failed to verify that all resource files were transcoded: %s", verifyErr.Error()) + } + return resp, nil } func removeByValue(slice []string, value string) []string {