From 6f4b6947fe179caea52ec3cb29003cdce847c740 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Wed, 18 Jun 2025 14:12:37 +0000 Subject: [PATCH 1/4] chore: warn on app creation error --- agent/agentcontainers/subagent.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/agent/agentcontainers/subagent.go b/agent/agentcontainers/subagent.go index b8e87707b3058..189f04d4f2bae 100644 --- a/agent/agentcontainers/subagent.go +++ b/agent/agentcontainers/subagent.go @@ -233,6 +233,15 @@ func (a *subAgentAPIClient) Create(ctx context.Context, agent SubAgent) (SubAgen if err != nil { return SubAgent{}, err } + for _, appError := range resp.AppCreationErrors { + app := apps[appError.Index] + + a.logger.Warn(ctx, "unable to create app", + slog.F("app_slug", app.Slug), + slog.F("field", appError.GetField()), + slog.F("error", appError.GetError()), + ) + } agent.Name = resp.Agent.Name agent.ID, err = uuid.FromBytes(resp.Agent.Id) From 22c4696e38c2858935e0f2bc39f1d6d1eb354121 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Wed, 18 Jun 2025 14:12:48 +0000 Subject: [PATCH 2/4] chore: add CODER_WORKSPACE_OWNER_NAME to updateCommandEnv --- agent/agent.go | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/agent.go b/agent/agent.go index 79f3feb21c50e..e142f8662f641 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -1297,6 +1297,7 @@ func (a *agent) updateCommandEnv(current []string) (updated []string, err error) "CODER": "true", "CODER_WORKSPACE_NAME": manifest.WorkspaceName, "CODER_WORKSPACE_AGENT_NAME": manifest.AgentName, + "CODER_WORKSPACE_OWNER_NAME": manifest.OwnerName, // Specific Coder subcommands require the agent token exposed! "CODER_AGENT_TOKEN": *a.sessionToken.Load(), From ebd5ed7150960cd07e0535ee75dfbd27e1dc570f Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Wed, 18 Jun 2025 15:57:33 +0000 Subject: [PATCH 3/4] test: CODER_WORKSPACE_OWNER_NAME is set --- agent/agent_test.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agent/agent_test.go b/agent/agent_test.go index 55b1808784aa6..1f049f08b65f9 100644 --- a/agent/agent_test.go +++ b/agent/agent_test.go @@ -1209,7 +1209,7 @@ func TestAgent_EnvironmentVariableExpansion(t *testing.T) { func TestAgent_CoderEnvVars(t *testing.T) { t.Parallel() - for _, key := range []string{"CODER", "CODER_WORKSPACE_NAME", "CODER_WORKSPACE_AGENT_NAME"} { + for _, key := range []string{"CODER", "CODER_WORKSPACE_NAME", "CODER_WORKSPACE_OWNER_NAME", "CODER_WORKSPACE_AGENT_NAME"} { key := key t.Run(key, func(t *testing.T) { t.Parallel() @@ -3079,6 +3079,9 @@ func setupAgent(t *testing.T, metadata agentsdk.Manifest, ptyTimeout time.Durati if metadata.WorkspaceName == "" { metadata.WorkspaceName = "test-workspace" } + if metadata.OwnerName == "" { + metadata.OwnerName = "test-user" + } if metadata.WorkspaceID == uuid.Nil { metadata.WorkspaceID = uuid.New() } From a6d5bce9f7f311924f0fd28de02333bbeef1fdc8 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Wed, 18 Jun 2025 16:40:51 +0000 Subject: [PATCH 4/4] chore: add more fields to log --- agent/agentcontainers/subagent.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/agent/agentcontainers/subagent.go b/agent/agentcontainers/subagent.go index 189f04d4f2bae..42df7080a890a 100644 --- a/agent/agentcontainers/subagent.go +++ b/agent/agentcontainers/subagent.go @@ -233,15 +233,6 @@ func (a *subAgentAPIClient) Create(ctx context.Context, agent SubAgent) (SubAgen if err != nil { return SubAgent{}, err } - for _, appError := range resp.AppCreationErrors { - app := apps[appError.Index] - - a.logger.Warn(ctx, "unable to create app", - slog.F("app_slug", app.Slug), - slog.F("field", appError.GetField()), - slog.F("error", appError.GetError()), - ) - } agent.Name = resp.Agent.Name agent.ID, err = uuid.FromBytes(resp.Agent.Id) @@ -252,6 +243,20 @@ func (a *subAgentAPIClient) Create(ctx context.Context, agent SubAgent) (SubAgen if err != nil { return agent, err } + + for _, appError := range resp.AppCreationErrors { + app := apps[appError.Index] + + a.logger.Warn(ctx, "unable to create app", + slog.F("agent_name", agent.Name), + slog.F("agent_id", agent.ID), + slog.F("directory", agent.Directory), + slog.F("app_slug", app.Slug), + slog.F("field", appError.GetField()), + slog.F("error", appError.GetError()), + ) + } + return agent, nil }