Skip to content

Prevent theme telemetry failures from replacing command results - #8907

Merged
gonzaloriestra merged 1 commit into
gonzalo/json-theme-metafields-pullfrom
gonzalo/theme-telemetry-guard
Oct 19, 2026
Merged

gonzaloriestra merged 1 commit into
gonzalo/json-theme-metafields-pullfrom
gonzalo/theme-telemetry-guard

Conversation

@gonzaloriestra

@gonzaloriestra gonzaloriestra commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

Fixes https://github.com/shop/issues-develop/issues/23693

A telemetry error can replace a completed theme command's result or hide its original error.

WHAT is this pull request doing?

Catch failures while collecting theme analytics and report them through debug logging. Preserve the command's result and original error. Cover failures in data compilation and public and sensitive metadata collection.

The stack's shared changeset is included in #8924.

How to manually test your changes?

Temporarily make compileData() in packages/cli-kit/src/public/node/analytics.ts throw an error. Run pnpm shopify theme info --store <your-store> with an authenticated store and confirm the command still completes. Repeat with an invalid theme selector and confirm the original command error is preserved. Restore compileData() afterward.

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing — I've identified the correct bump type (patch for bug fixes · minor for new features · major for breaking changes) and added a changeset with pnpm changeset add

@github-actions github-actions Bot added the no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. label Oct 15, 2026
@gonzaloriestra gonzaloriestra mentioned this pull request Oct 15, 2026
4 tasks done
@gonzaloriestra
gonzaloriestra added this pull request to stack #8908 October 15, 2026 11:55
@gonzaloriestra
gonzaloriestra marked this pull request as ready for review October 15, 2026 12:05
@gonzaloriestra
gonzaloriestra requested a review from a team as a code owner October 15, 2026 12:05
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch from 85cc4f0 to 9496642 Compare October 15, 2026 12:12
@gonzaloriestra
gonzaloriestra requested a review from a team as a code owner October 15, 2026 12:12
@gonzaloriestra
gonzaloriestra removed this pull request from stack #8908 October 15, 2026 12:12
@github-actions github-actions Bot added Area: @shopify/cli @shopify/cli package issues and removed no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. labels Oct 15, 2026
@gonzaloriestra
gonzaloriestra changed the base branch from main to gonzalo/json-theme-metafields-pull October 15, 2026 12:34
@gonzaloriestra
gonzaloriestra added this pull request to stack #8925 October 15, 2026 12:34
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch from 9496642 to 9b059e1 Compare October 15, 2026 13:33
@github-actions github-actions Bot added no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. and removed Area: @shopify/cli @shopify/cli package issues labels Oct 15, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch 2 times, most recently from f216458 to 557041a Compare October 15, 2026 14:10
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch from 557041a to f61eeff Compare October 15, 2026 14:33
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch from f61eeff to 00b9dfe Compare October 15, 2026 15:11
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch 2 times, most recently from 0d779bf to b9f35d1 Compare October 16, 2026 08:15
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch from b9f35d1 to 580b711 Compare October 16, 2026 08:40
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch 2 times, most recently from 17eddcf to 4eb3155 Compare October 16, 2026 11:08
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch 2 times, most recently from 4d72f07 to 6de5e15 Compare October 16, 2026 11:32

@karreiro karreiro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for putting this PR together, @gonzaloriestra!

@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch 2 times, most recently from 8a2220e to bf390d0 Compare October 19, 2026 08:44
@gonzaloriestra
gonzaloriestra added this pull request to the merge queue Oct 19, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue because a pull request earlier in the stack was removed Oct 19, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/theme-telemetry-guard branch from bf390d0 to c87a3c3 Compare October 19, 2026 11:02
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Potential Breaking Changes Detected

This PR contains changes that may break the existing contract.

@shopify/dev_experience — this PR contains breaking changes that require coordination for the next major release.

📦 Major Version Changesets

The following changesets request a major version bump:

Changeset Package
theme-check-json-contract.md '@shopify/cli': major
theme-profile-environments.md '@shopify/cli': major

@github-actions

Copy link
Copy Markdown
Contributor

Differences in type declarations

We detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:

  • Some seemingly private modules might be re-exported through public modules.
  • If the branch is behind main you might see odd diffs, rebase main into this branch.

New type declarations

We found no new type declarations in this PR

Existing type declarations

packages/cli-kit/dist/public/node/base-command.d.ts
@@ -21,6 +21,7 @@ declare abstract class BaseCommand extends Command {
     static descriptionWithoutMarkdown(): string | undefined;
     static analyticsNameOverride(): string | undefined;
     static analyticsStopCommand(): string | undefined;
+    private jsonOutputFromFlags;
     catch(error: Error & {
         skipOclifErrorHandling: boolean;
     }): Promise<void>;
@@ -36,6 +37,7 @@ declare abstract class BaseCommand extends Command {
     }, TGlobalFlags extends FlagOutput, TArgs extends ArgOutput>(options?: Input<TFlags, TGlobalFlags, TArgs>, argv?: string[]): Promise<ParserOutput<TFlags, TGlobalFlags, TArgs> & {
         argv: string[];
     }>;
+    protected runWithParsedOutput<T>(flags: FlagOutput, execute: () => T): T;
     protected environmentsFilename(): string | undefined;
     protected parseEnvironmentFlags<TFlags extends FlagOutput, TGlobalFlags extends FlagOutput, TArgs extends ArgOutput>(environment: JsonMap, options: Input<TFlags, TGlobalFlags, TArgs>, explicitFlags: FlagOutput): Promise<FlagOutput>;
     protected validateNonTTYFlags(flags: FlagOutput): void;
packages/cli-kit/dist/cli/api/graphql/admin/generated/metafield_definitions_by_owner_type.d.ts
@@ -2,9 +2,14 @@ import * as Types from './types.js';
 import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
 export type MetafieldDefinitionsByOwnerTypeQueryVariables = Types.Exact<{
     ownerType: Types.MetafieldOwnerType;
+    after?: Types.InputMaybe<Types.Scalars['String']['input']>;
 }>;
 export type MetafieldDefinitionsByOwnerTypeQuery = {
     metafieldDefinitions: {
+        pageInfo: {
+            hasNextPage: boolean;
+            endCursor?: string | null;
+        };
         nodes: {
             key: string;
             name: string;

@gonzaloriestra
gonzaloriestra added this pull request to the merge queue Oct 19, 2026
Merged via the queue into main with commit 66cab94 Oct 19, 2026
27 of 30 checks passed
@gonzaloriestra
gonzaloriestra deleted the gonzalo/theme-telemetry-guard branch October 19, 2026 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. shopify.dev preview

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants