Skip to content

lk app create: mixed Unix/Windows path (/tmp\...) causes post_create task to fail silently on Windows #911

Description

@Propconnect-ai

What happened

On Windows 11, lk app create completes and reports success, but a scaffolding task fails:

coreutils: open /tmp\2013691747: The system cannot find the path specified.
task: Failed to run task "post_create": task: Failed to run task
"set_agent_name_if_present": coreutils: open /tmp\2013691747: The system cannot find
the path specified.

The path /tmp\2013691747 mixes a Unix root (/tmp) with a Windows separator (\). That path cannot resolve on either OS.

The consequence is that set_agent_name_if_present does not run — yet the command still prints "Your agent has been created!" immediately above the error. Part of the scaffolding silently did not happen.

I believe this is also the cause of #910, where the console URL is emitted with an unpopulated project ID (projects/p_/).

Related symptom — likely the same root cause

Every lk invocation on Windows also prints, three times:

WARNING: config file C:\Users\saura\.livekit/cli-config.yaml should have permissions 600
WARNING: config file C:\Users\saura\.livekit/cli-config.yaml should have permissions 600
WARNING: config file C:\Users\saura\.livekit/cli-config.yaml should have permissions 600

Two problems here:

  1. 600 is a Unix permission mode. Windows uses ACLs and has no equivalent, so this warns the user about a condition that cannot exist on their OS and that they cannot act on.
  2. Note the path: C:\Users\saura\.livekit/cli-config.yaml — backslash, then forward slash. Same mixed-separator signature as the /tmp\ failure above.

Both look like Unix path and permission assumptions leaking through the cross-platform layer.

Environment

  • Windows 11
  • LiveKit CLI 2.17.0 (winget install LiveKit.LiveKitCLI)
  • PowerShell
  • Template: agent-starter-python

Steps to reproduce

  1. winget install LiveKit.LiveKitCLI
  2. Restart shell
  3. lk cloud auth
  4. lk app create --template agent-starter-python <name>
  5. Observe the permissions 600 warnings, and the post_create failure at the end of the output

Expected

  • Temp paths built with the platform separator (os.TempDir() / filepath.Join)
  • post_create / set_agent_name_if_present completes on Windows
  • Permission check skipped on Windows, or at minimum not emitted three times

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions