Skip to content

ntk pull writes a checkout/ directory that ntk push rejects, aborting the push partway #37

Description

@next-devin

ntk pull writes a checkout/ directory that ntk push then refuses, and the refusal stops the whole push. Pull a theme, change one template, push it back, and the upload stops partway through.

This came up while working on a merchant theme on voltex.29next.store. Pulling theme 166 gave a clean 348-file checkout. Pushing that same tree to a new theme failed immediately.

How to reproduce

ntk pull -t <theme_id>        # produces checkout/checkout.html among the files
ntk push                      # fails on the first file it tries

The error:

INFO Uploading checkout/checkout.html file to theme id #265 failed. -> "name" : This directory is not supported.
ERROR [development] Push failed, see the error above.

The push had reached 45.8% before it hit that file, so roughly half the theme uploaded and the rest did not. The target theme is left partially updated rather than untouched. Files are uploaded in path order, so assets/ lands before checkout/ stops the run.

Version: ntk 1.2.0 (current release on PyPI).

Workaround

Move checkout/ out of the theme directory before pushing. After that the same tree pushed all 348 files with no errors.

What we would expect

Either side of the round trip would fix it. pull could leave out the directory it knows push cannot accept, or push could skip it with a warning and upload the rest.

Worth confirming which is intended: checkout templates are platform-managed, so if they are never pushable, having pull write them at all is what creates the trap.

Who this affects

Anyone doing pull, edit, push on a theme that contains a checkout/ directory, which is the normal way to work on an existing theme. It is not specific to this store or theme.

Separate observation on exit status

The failed push above printed Push failed and exited 0.

That matches #29, which was closed on 2026-07-29. We saw it on 1.2.0, the latest release on PyPI, so the fix may be merged but not yet published rather than regressed. Flagging it because we hit it from a background job that read the exit code and treated the failed push as a success, which is the case where a half-uploaded theme goes unnoticed.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions