@spacefast/common 0.0.23 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/brand-assets/LICENSE-Haskoy.txt +93 -0
- package/brand-assets/haskoy-latin-variable.woff2 +0 -0
- package/brand-assets/spacefast-favicon.svg +4 -4
- package/brand-assets/spacefast-sf-full-bleed.svg +3 -3
- package/brand-assets/spacefast-wordmark.svg +2 -4
- package/dist/agents/connect-targets.js +1 -1
- package/dist/agents/private-key-oauth.d.ts +0 -1
- package/dist/agents/private-key-oauth.js +46 -63
- package/dist/brand-assets-build.js +4 -6
- package/dist/brand-assets.d.ts +5 -15
- package/dist/brand-assets.js +15 -14
- package/dist/config/domains.d.ts +47 -7
- package/dist/config/domains.js +66 -10
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -1
- package/dist/contracts/abuse.d.ts +2 -0
- package/dist/contracts/abuse.js +12 -0
- package/dist/contracts/access.d.ts +124 -12
- package/dist/contracts/access.js +73 -9
- package/dist/contracts/activity.d.ts +1 -1
- package/dist/contracts/activity.js +5 -12
- package/dist/contracts/api-keys.d.ts +21 -21
- package/dist/contracts/api-keys.js +2 -2
- package/dist/contracts/beta.js +1 -1
- package/dist/contracts/billing.d.ts +3 -35
- package/dist/contracts/billing.js +33 -52
- package/dist/contracts/builds.d.ts +30 -18
- package/dist/contracts/builds.js +28 -9
- package/dist/contracts/channels.js +1 -1
- package/dist/contracts/cli.d.ts +10 -0
- package/dist/contracts/cli.js +10 -0
- package/dist/contracts/collab-public.d.ts +63 -0
- package/dist/contracts/collab-public.js +46 -0
- package/dist/contracts/comments.d.ts +282 -53
- package/dist/contracts/comments.js +173 -52
- package/dist/contracts/common.d.ts +3 -3
- package/dist/contracts/common.js +5 -5
- package/dist/contracts/crons.d.ts +35 -0
- package/dist/contracts/crons.js +42 -0
- package/dist/contracts/device-auth.d.ts +6 -6
- package/dist/contracts/device-auth.js +2 -2
- package/dist/contracts/docs.js +2 -2
- package/dist/contracts/domains.d.ts +38 -27
- package/dist/contracts/domains.js +29 -2
- package/dist/contracts/enums.d.ts +34 -30
- package/dist/contracts/enums.js +62 -48
- package/dist/contracts/error-code-meta.d.ts +50 -125
- package/dist/contracts/error-code-meta.js +29 -41
- package/dist/contracts/error-codes.d.ts +1 -1
- package/dist/contracts/error-codes.js +14 -33
- package/dist/contracts/execution.d.ts +47 -66
- package/dist/contracts/execution.js +53 -49
- package/dist/contracts/feature-lifecycle-core.d.ts +0 -6
- package/dist/contracts/feature-lifecycle-core.js +2 -31
- package/dist/contracts/feature-lifecycle.d.ts +12 -52
- package/dist/contracts/feature-lifecycle.js +16 -59
- package/dist/contracts/features.d.ts +48 -60
- package/dist/contracts/features.js +59 -51
- package/dist/contracts/functions.d.ts +266 -72
- package/dist/contracts/functions.js +260 -37
- package/dist/contracts/git.d.ts +28 -34
- package/dist/contracts/git.js +10 -11
- package/dist/contracts/grants.d.ts +9 -5
- package/dist/contracts/grants.js +18 -9
- package/dist/contracts/ids.js +2 -2
- package/dist/contracts/internal.d.ts +8 -6
- package/dist/contracts/internal.js +12 -12
- package/dist/contracts/mcp.d.ts +11 -0
- package/dist/contracts/mcp.js +5 -0
- package/dist/contracts/me.js +1 -1
- package/dist/contracts/oauth-resources.d.ts +4 -3
- package/dist/contracts/oauth-resources.js +12 -3
- package/dist/contracts/operations.d.ts +90 -5
- package/dist/contracts/operations.js +77 -3
- package/dist/contracts/pages.d.ts +12 -7
- package/dist/contracts/pages.js +24 -1
- package/dist/contracts/plan-policy.d.ts +0 -2
- package/dist/contracts/plan-policy.js +2 -3
- package/dist/contracts/platform.d.ts +61 -148
- package/dist/contracts/platform.js +70 -126
- package/dist/contracts/publish-archive.d.ts +508 -0
- package/dist/contracts/publish-archive.js +32 -0
- package/dist/contracts/push-new.d.ts +4 -4
- package/dist/contracts/quotas.js +2 -2
- package/dist/contracts/repository-connections.d.ts +43 -30
- package/dist/contracts/repository-connections.js +11 -3
- package/dist/contracts/resources.d.ts +12 -24
- package/dist/contracts/resources.js +36 -16
- package/dist/contracts/runtime-api.d.ts +433 -192
- package/dist/contracts/runtime-api.js +421 -356
- package/dist/contracts/runtime-app.d.ts +127 -120
- package/dist/contracts/runtime-app.js +19 -10
- package/dist/contracts/runtime-db.d.ts +5 -5
- package/dist/contracts/runtime-db.js +2 -2
- package/dist/contracts/runtime-purge.d.ts +8 -0
- package/dist/contracts/runtime-purge.js +7 -0
- package/dist/contracts/runtime-services.d.ts +219 -0
- package/dist/contracts/runtime-services.js +437 -0
- package/dist/contracts/runtime-storage.d.ts +46 -32
- package/dist/contracts/runtime-storage.js +31 -8
- package/dist/contracts/sf-config-v1.d.ts +48 -10
- package/dist/contracts/space-config.d.ts +69 -18
- package/dist/contracts/space-config.js +226 -27
- package/dist/contracts/spaces.d.ts +236 -450
- package/dist/contracts/spaces.js +131 -151
- package/dist/contracts/superadmin-activity.d.ts +57 -4
- package/dist/contracts/superadmin-activity.js +48 -2
- package/dist/contracts/superadmin-search.d.ts +126 -0
- package/dist/contracts/superadmin-search.js +61 -0
- package/dist/contracts/superadmin-spaces.d.ts +361 -92
- package/dist/contracts/superadmin-spaces.js +97 -24
- package/dist/contracts/superadmin-teams.d.ts +28 -10
- package/dist/contracts/superadmin-teams.js +5 -8
- package/dist/contracts/superadmin-tenants.d.ts +0 -6
- package/dist/contracts/superadmin-tenants.js +1 -7
- package/dist/contracts/superadmin.d.ts +135 -54
- package/dist/contracts/superadmin.js +46 -23
- package/dist/contracts/tags.d.ts +12 -12
- package/dist/contracts/tags.js +3 -3
- package/dist/contracts/teams.d.ts +49 -14
- package/dist/contracts/teams.js +40 -22
- package/dist/contracts/transfers.d.ts +0 -49
- package/dist/contracts/transfers.js +4 -8
- package/dist/contracts/usage.d.ts +61 -0
- package/dist/contracts/usage.js +64 -0
- package/dist/contracts/variables.d.ts +2 -7
- package/dist/contracts/variables.js +9 -8
- package/dist/contracts/webhooks.d.ts +2 -2
- package/dist/contracts/zero.d.ts +102 -73
- package/dist/contracts/zero.js +94 -32
- package/dist/dashboard-paths/index.d.ts +1 -1
- package/dist/dashboard-paths/index.js +1 -0
- package/dist/docs/agent-prose.d.ts +2 -2
- package/dist/docs/agent-prose.js +63 -70
- package/dist/docs/agent-setup.js +45 -15
- package/dist/docs/catalog.d.ts +24 -24
- package/dist/docs/catalog.js +35 -24
- package/dist/docs/error-docs.js +194 -270
- package/dist/docs/skills.d.ts +12 -12
- package/dist/docs/skills.js +4 -4
- package/dist/test-helpers/fetch-stub.d.ts +16 -0
- package/dist/test-helpers/fetch-stub.js +25 -0
- package/dist/utils/build-settings.d.ts +5 -1
- package/dist/utils/build-settings.js +91 -13
- package/dist/utils/canonical-json.d.ts +10 -0
- package/dist/utils/canonical-json.js +22 -0
- package/dist/utils/cast-transport.d.ts +28 -0
- package/dist/utils/cast-transport.js +52 -0
- package/dist/utils/claim-token.d.ts +0 -8
- package/dist/utils/claim-token.js +3 -15
- package/dist/utils/concurrency.js +1 -0
- package/dist/utils/credential-policy.d.ts +1 -1
- package/dist/utils/credential-policy.js +4 -3
- package/dist/utils/dns-instructions.js +9 -9
- package/dist/utils/env-file.d.ts +17 -0
- package/dist/utils/env-file.js +96 -0
- package/dist/utils/error-code.d.ts +2 -0
- package/dist/utils/error-code.js +8 -0
- package/dist/utils/generate-space-name.d.ts +8 -10
- package/dist/utils/generate-space-name.js +206 -21
- package/dist/utils/grant-decision.fixtures.json +2938 -0
- package/dist/utils/grants.d.ts +2 -0
- package/dist/utils/grants.js +26 -1
- package/dist/utils/gravatar.d.ts +9 -0
- package/dist/utils/gravatar.js +31 -0
- package/dist/utils/idempotency.d.ts +6 -0
- package/dist/utils/idempotency.js +28 -0
- package/dist/utils/local-space-state.d.ts +9 -16
- package/dist/utils/local-space-state.js +20 -50
- package/dist/utils/one-shot-replay.d.ts +4 -1
- package/dist/utils/page-colors.d.ts +14 -12
- package/dist/utils/page-colors.js +15 -13
- package/dist/utils/page-fonts.d.ts +2 -2
- package/dist/utils/page-fonts.js +15 -4
- package/dist/utils/pages.d.ts +21 -3
- package/dist/utils/pages.js +42 -13
- package/dist/utils/publish-form-data.d.ts +12 -0
- package/dist/utils/publish-form-data.js +10 -0
- package/dist/utils/publish-policy.d.ts +27 -0
- package/dist/utils/publish-policy.fixtures.json +403 -0
- package/dist/utils/publish-policy.js +45 -20
- package/dist/utils/push-new.d.ts +7 -0
- package/dist/utils/push-new.js +7 -0
- package/dist/utils/query-keys.d.ts +4 -5
- package/dist/utils/query-keys.js +2 -3
- package/dist/utils/runtime-paths.d.ts +5 -0
- package/dist/utils/runtime-paths.js +5 -0
- package/dist/utils/runtime-upload-batch.d.ts +0 -5
- package/dist/utils/runtime-upload-batch.js +1 -27
- package/dist/utils/runtime-upload.d.ts +6 -11
- package/dist/utils/runtime-upload.js +10 -13
- package/dist/utils/secure-local-file.js +5 -16
- package/dist/utils/space-config.d.ts +1 -34
- package/dist/utils/space-config.js +8 -326
- package/dist/utils/static-runtime-policy.d.ts +9 -3
- package/dist/utils/static-runtime-policy.fixtures.json +38 -41
- package/dist/utils/static-runtime-policy.js +22 -56
- package/dist/utils/storage-policy.d.ts +1 -1
- package/dist/utils/storage-policy.js +3 -1
- package/dist/utils/structured-error.d.ts +14 -0
- package/dist/utils/structured-error.js +22 -0
- package/dist/utils/upload-session.d.ts +4 -1
- package/dist/utils/upload-session.js +33 -5
- package/dist/utils/version-path.js +13 -4
- package/dist/vocabulary.d.ts +13 -11
- package/dist/vocabulary.js +42 -28
- package/package.json +7 -17
- package/dist/config/postgres-budget.d.ts +0 -129
- package/dist/config/postgres-budget.js +0 -140
- package/dist/config/postgres-budget.json +0 -51
- package/dist/contracts/archives.d.ts +0 -331
- package/dist/contracts/archives.js +0 -120
- package/dist/contracts/deployments.d.ts +0 -574
- package/dist/contracts/deployments.js +0 -97
- package/dist/contracts/sites.d.ts +0 -416
- package/dist/contracts/sites.js +0 -168
- package/dist/contracts/superadmin-queues.d.ts +0 -414
- package/dist/contracts/superadmin-queues.js +0 -202
- package/dist/contracts/superadmin-runtime.d.ts +0 -27
- package/dist/contracts/superadmin-runtime.js +0 -38
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/utils/api.d.ts +0 -4
- package/dist/utils/api.js +0 -13
package/dist/docs/error-docs.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// Error reference content (
|
|
1
|
+
// Error reference content (the platform spec "Global API Conventions"):
|
|
2
2
|
// every problem document `type` points at `https://spacefast.com/docs/errors/{code}`,
|
|
3
3
|
// and those pages are GENERATED from this table — one entry per member of
|
|
4
4
|
// `ERROR_CODES`, asserted complete by the conformance suite so links never rot
|
|
5
|
-
// and pages never go missing.
|
|
5
|
+
// and pages never go missing. The standalone website renders the HTML pages and writes the
|
|
6
6
|
// `.md` twins from the same entries.
|
|
7
7
|
import { BRAND } from "../brand.js";
|
|
8
8
|
import { serviceOrigin } from "../config/domains.js";
|
|
@@ -15,7 +15,7 @@ export const ERROR_DOCS = {
|
|
|
15
15
|
},
|
|
16
16
|
account_suspended: {
|
|
17
17
|
summary: "This account is suspended for a policy or abuse violation and cannot be used.",
|
|
18
|
-
fix: "
|
|
18
|
+
fix: "If you believe the suspension is a mistake, contact support to review it.",
|
|
19
19
|
},
|
|
20
20
|
abuse_report_rate_limited: {
|
|
21
21
|
summary: "Too many abuse reports were submitted from this client in a short window.",
|
|
@@ -23,7 +23,7 @@ export const ERROR_DOCS = {
|
|
|
23
23
|
},
|
|
24
24
|
abuse_takedown: {
|
|
25
25
|
summary: "This space was disabled by an abuse takedown and cannot be served or modified.",
|
|
26
|
-
fix: "If you believe
|
|
26
|
+
fix: "If you believe the takedown is a mistake, contact support with the space id.",
|
|
27
27
|
},
|
|
28
28
|
access_denied: {
|
|
29
29
|
summary: "The authorization request was denied by the user.",
|
|
@@ -39,7 +39,7 @@ export const ERROR_DOCS = {
|
|
|
39
39
|
},
|
|
40
40
|
agent_handoff_origin_unsupported: {
|
|
41
41
|
summary: "The dashboard origin this deployment is configured with cannot mint canonical agent handoff links.",
|
|
42
|
-
fix: "Point SPACEFAST_DASHBOARD_URL at a valid HTTP
|
|
42
|
+
fix: "Point SPACEFAST_DASHBOARD_URL at a valid HTTP or HTTPS origin. If you cannot change it, contact support.",
|
|
43
43
|
},
|
|
44
44
|
ambiguous_space_slug: {
|
|
45
45
|
summary: "The slug matches spaces in more than one of your teams, so it cannot be resolved.",
|
|
@@ -49,26 +49,18 @@ export const ERROR_DOCS = {
|
|
|
49
49
|
summary: "This anonymous space expired before it was claimed.",
|
|
50
50
|
fix: "Publish a fresh space and share its claim link right away this time. If you meant to update a live space, check .spacefast/ (or your saved receipt) for its spaceId. Publish to that space with its credential instead of creating a new space.",
|
|
51
51
|
},
|
|
52
|
-
anonymous_pool_unavailable: {
|
|
53
|
-
summary: "No pooled capacity is available for anonymous publishes right now.",
|
|
54
|
-
fix: "Retry shortly. Capacity replenishes automatically.",
|
|
55
|
-
},
|
|
56
52
|
anonymous_publish_rate_limited: {
|
|
57
53
|
summary: "Too many anonymous publishes came from this network in a short window.",
|
|
58
54
|
fix: "Wait for the window to pass, or sign in with an API key for higher limits.",
|
|
59
55
|
},
|
|
60
56
|
anonymous_space_limit_reached: {
|
|
61
|
-
summary: "
|
|
62
|
-
fix: "
|
|
57
|
+
summary: "This client already holds the maximum number of unclaimed spaces.",
|
|
58
|
+
fix: "Sign in and publish into your account, or claim or delete one of the unclaimed spaces you already have.",
|
|
63
59
|
},
|
|
64
60
|
api_key_scope_underivable: {
|
|
65
61
|
summary: "A concrete access policy cannot be derived from the requested scope and permissions.",
|
|
66
62
|
fix: "Point scope at a resource you can already reach (an existing space owned by a team). Request only permissions your credential already has.",
|
|
67
63
|
},
|
|
68
|
-
archive_body_required: {
|
|
69
|
-
summary: "This request must carry an archive body but none was provided.",
|
|
70
|
-
fix: "Send the zip bytes as the request body with the matching content-type header.",
|
|
71
|
-
},
|
|
72
64
|
archive_too_large: {
|
|
73
65
|
summary: "The uploaded archive exceeds the maximum allowed size.",
|
|
74
66
|
fix: "Reduce the archive size or upload files individually through a version upload session.",
|
|
@@ -81,33 +73,13 @@ export const ERROR_DOCS = {
|
|
|
81
73
|
summary: "The device login is not approved yet.",
|
|
82
74
|
fix: "Keep polling at the advised interval until the user approves the request.",
|
|
83
75
|
},
|
|
84
|
-
billing_receipt_invalid: {
|
|
85
|
-
summary: "The store receipt or notification cannot be verified with the payment provider.",
|
|
86
|
-
fix: "Re-check the transaction id or purchase token and retry. Contact support if it persists.",
|
|
87
|
-
},
|
|
88
|
-
billing_receipt_not_bound_to_team: {
|
|
89
|
-
summary: "The store purchase was made under a different account token than this team's.",
|
|
90
|
-
fix: "Verify the purchase from the team that initiated it, or contact support to rebind it.",
|
|
91
|
-
},
|
|
92
|
-
billing_store_not_configured: {
|
|
93
|
-
summary: "App Store or Google Play billing is not configured on this deployment.",
|
|
94
|
-
fix: "Use another billing method, or configure the store credentials on the server.",
|
|
95
|
-
},
|
|
96
|
-
billing_subscription_conflict: {
|
|
97
|
-
summary: "The team already has an active subscription with another payment provider.",
|
|
98
|
-
fix: "Cancel the existing subscription before subscribing through a different provider.",
|
|
99
|
-
},
|
|
100
|
-
billing_unknown_product: {
|
|
101
|
-
summary: "The purchased store product does not map to any plan sold by this deployment.",
|
|
102
|
-
fix: "Check the product id against the store catalog returned by the billing endpoints.",
|
|
103
|
-
},
|
|
104
76
|
build_command_missing: {
|
|
105
77
|
summary: "A build or install command cannot be found during the build run.",
|
|
106
78
|
fix: "Check the command spelling and ensure its tool is declared in package.json or available in the build image.",
|
|
107
79
|
},
|
|
108
80
|
build_execution_unavailable: {
|
|
109
81
|
summary: "Build execution is not available on this deployment.",
|
|
110
|
-
fix: "Publish prebuilt
|
|
82
|
+
fix: "Publish prebuilt output instead.",
|
|
111
83
|
},
|
|
112
84
|
build_failed: {
|
|
113
85
|
summary: "The build run failed before producing a version.",
|
|
@@ -129,6 +101,10 @@ export const ERROR_DOCS = {
|
|
|
129
101
|
summary: "The build process was killed, most likely after running out of memory.",
|
|
130
102
|
fix: "Reduce the build's memory usage or concurrency, then start a new build.",
|
|
131
103
|
},
|
|
104
|
+
build_output_contains_server_bundle: {
|
|
105
|
+
summary: "The build output contains a compiled server bundle (an OpenNext worker.js), which a file-only publish would expose as a public download.",
|
|
106
|
+
fix: "This app needs the Spacefast Functions pipeline: run `sf publish` in the project with the Spacefast CLI so the worker deploys as a Function, or point the output directory at a browser-ready export.",
|
|
107
|
+
},
|
|
132
108
|
build_output_dir_missing: {
|
|
133
109
|
summary: "The build finished but its output directory was not produced.",
|
|
134
110
|
fix: "Point the output directory setting at the folder your build writes (for example dist, build, out, or public).",
|
|
@@ -137,6 +113,14 @@ export const ERROR_DOCS = {
|
|
|
137
113
|
summary: "The build exceeded its time limit before producing a version.",
|
|
138
114
|
fix: "Speed up the build or raise the build timeout in the build settings, then start a new build.",
|
|
139
115
|
},
|
|
116
|
+
blob_gate_record_missing: {
|
|
117
|
+
summary: "The file behind this download link no longer exists.",
|
|
118
|
+
fix: "The underlying object was deleted. Ask the owner for a fresh link.",
|
|
119
|
+
},
|
|
120
|
+
blob_gate_token_invalid: {
|
|
121
|
+
summary: "The download token is invalid or expired.",
|
|
122
|
+
fix: "Request a fresh download link and use it within its lifetime.",
|
|
123
|
+
},
|
|
140
124
|
cache_purge_domain_required: {
|
|
141
125
|
summary: "A purge request must name the domain to purge.",
|
|
142
126
|
fix: "Pass the domain to purge in the request.",
|
|
@@ -159,7 +143,7 @@ export const ERROR_DOCS = {
|
|
|
159
143
|
},
|
|
160
144
|
claim_blocked_takedown: {
|
|
161
145
|
summary: "This space is under an abuse takedown and cannot be claimed.",
|
|
162
|
-
fix: "
|
|
146
|
+
fix: "If you believe the takedown is a mistake, contact support.",
|
|
163
147
|
},
|
|
164
148
|
claim_target_not_found: {
|
|
165
149
|
summary: "The team or account to claim the space into was not found.",
|
|
@@ -167,19 +151,15 @@ export const ERROR_DOCS = {
|
|
|
167
151
|
},
|
|
168
152
|
claimed_space_quota_exceeded: {
|
|
169
153
|
summary: "Claiming this space would exceed the target team's space quota.",
|
|
170
|
-
fix: "Delete unused spaces, then claim again.
|
|
154
|
+
fix: "Delete unused spaces, then claim again. If you are still stuck, POST /v1/feedback with the error code and requestId.",
|
|
171
155
|
},
|
|
172
156
|
cli_upgrade_required: {
|
|
173
157
|
summary: "This CLI version is too old to talk to the API safely.",
|
|
174
158
|
fix: "Upgrade the CLI to the latest release and retry.",
|
|
175
159
|
},
|
|
176
|
-
comment_screenshot_rate_limited: {
|
|
177
|
-
summary: "Too many comment screenshot uploads were attempted.",
|
|
178
|
-
fix: "Wait for the one-minute window to reset, then retry the screenshot upload.",
|
|
179
|
-
},
|
|
180
160
|
config_file_too_large: {
|
|
181
161
|
summary: "The sf.jsonc configuration file exceeds the maximum size.",
|
|
182
|
-
fix: "Keep the configuration file
|
|
162
|
+
fix: "Keep the configuration file at or under 256 KB.",
|
|
183
163
|
},
|
|
184
164
|
config_functions_key_removed: {
|
|
185
165
|
summary: "The sf.jsonc configuration still uses the removed top-level functions key.",
|
|
@@ -199,7 +179,7 @@ export const ERROR_DOCS = {
|
|
|
199
179
|
},
|
|
200
180
|
config_runtime_entry_missing: {
|
|
201
181
|
summary: "The declared runtime has no entry module to compile.",
|
|
202
|
-
fix: "Name the entry in sf.jsonc: runtime.entry for functions, runtime.server and runtime.client for zero. Remove the runtime block to publish
|
|
182
|
+
fix: "Name the entry in sf.jsonc: runtime.entry for functions, runtime.server and runtime.client for zero. Remove the runtime block to publish files without a runtime instead.",
|
|
203
183
|
},
|
|
204
184
|
config_runtime_invalid_kind: {
|
|
205
185
|
summary: "The runtime block in the space configuration declares an unknown kind.",
|
|
@@ -207,14 +187,14 @@ export const ERROR_DOCS = {
|
|
|
207
187
|
},
|
|
208
188
|
config_templates_over_limit: {
|
|
209
189
|
summary: "The configuration declares more template files than the plan allows.",
|
|
210
|
-
fix: "Reduce the number of template entries in sf.jsonc.
|
|
190
|
+
fix: "Reduce the number of template entries in sf.jsonc. If you are still stuck, POST /v1/feedback with the error code and requestId.",
|
|
211
191
|
},
|
|
212
192
|
continuation_unavailable: {
|
|
213
|
-
summary: "This
|
|
214
|
-
fix: "If the space is claimed, ask its owner for an API key (dashboard: Account → API keys). If it is still unclaimed, keep using the
|
|
193
|
+
summary: "This space key can no longer be exchanged for an API key.",
|
|
194
|
+
fix: "If the space is claimed, ask its owner for an API key (dashboard: Account → API keys). If it is still unclaimed, keep using the space key as bearer auth instead of exchanging it. If you are still stuck, POST /v1/feedback with the error code and requestId.",
|
|
215
195
|
},
|
|
216
196
|
continuation_used: {
|
|
217
|
-
summary: "This
|
|
197
|
+
summary: "This space key was already exchanged for a durable API key.",
|
|
218
198
|
fix: "Authenticate with the exchanged API key (check .spacefast/state.json or wherever it was saved). If it was lost, ask the space owner to create a new API key.",
|
|
219
199
|
},
|
|
220
200
|
credential_expired: {
|
|
@@ -223,7 +203,7 @@ export const ERROR_DOCS = {
|
|
|
223
203
|
},
|
|
224
204
|
credential_not_yet_valid: {
|
|
225
205
|
summary: "The credential is not valid yet because its start time is in the future.",
|
|
226
|
-
fix: "Wait until the credential's notBefore time, or adjust
|
|
206
|
+
fix: "Wait until the credential's notBefore time, or adjust the notBefore value.",
|
|
227
207
|
},
|
|
228
208
|
credential_retired: {
|
|
229
209
|
summary: "This request used a retired Spacefast token format or authentication header.",
|
|
@@ -241,10 +221,6 @@ export const ERROR_DOCS = {
|
|
|
241
221
|
summary: "CSAM enforcement policy cannot be set below the mandatory account-suspend floor.",
|
|
242
222
|
fix: "Set the CSAM category enforcement tier to account suspension.",
|
|
243
223
|
},
|
|
244
|
-
custom_certificates_require_dedicated_site: {
|
|
245
|
-
summary: "Custom certificates are unavailable while this space uses shared placement.",
|
|
246
|
-
fix: "Move the space to dedicated placement before managing custom certificates.",
|
|
247
|
-
},
|
|
248
224
|
data_location_immutable: {
|
|
249
225
|
summary: "This request tried to change data location through an immutable path.",
|
|
250
226
|
fix: "Data location is fixed when the space is created and cannot be changed afterwards. Create a new space in the region you want.",
|
|
@@ -259,7 +235,7 @@ export const ERROR_DOCS = {
|
|
|
259
235
|
},
|
|
260
236
|
device_verification_rate_limited: {
|
|
261
237
|
summary: "Too many incorrect device codes were entered in a short window.",
|
|
262
|
-
fix: "Wait for the lockout to pass, then enter the code
|
|
238
|
+
fix: "Wait for the lockout to pass, then enter the code exactly as your CLI shows it.",
|
|
263
239
|
},
|
|
264
240
|
dns_export_required: {
|
|
265
241
|
summary: "This operation requires exporting the current DNS records first.",
|
|
@@ -271,7 +247,7 @@ export const ERROR_DOCS = {
|
|
|
271
247
|
},
|
|
272
248
|
dns_import_partial_visibility: {
|
|
273
249
|
summary: "The DNS import cannot see the full zone, so importing would lose records.",
|
|
274
|
-
fix: "Verify delegation
|
|
250
|
+
fix: "Verify delegation. Once the full zone is visible, retry the import.",
|
|
275
251
|
},
|
|
276
252
|
dns_provider_auth_expired: {
|
|
277
253
|
summary: "The connected DNS provider authorization expired or was revoked.",
|
|
@@ -279,7 +255,7 @@ export const ERROR_DOCS = {
|
|
|
279
255
|
},
|
|
280
256
|
dns_provider_batch_unsupported: {
|
|
281
257
|
summary: "The connected DNS provider cannot apply this batch with the required semantics.",
|
|
282
|
-
fix: "Split the change or use a provider
|
|
258
|
+
fix: "Split the change, or use a provider or zone that supports atomic batch writes.",
|
|
283
259
|
},
|
|
284
260
|
dns_provider_change_pending: {
|
|
285
261
|
summary: "The DNS provider accepted the change but propagation or provider completion is still pending.",
|
|
@@ -351,7 +327,7 @@ export const ERROR_DOCS = {
|
|
|
351
327
|
},
|
|
352
328
|
dns_provider_replace_all_write_strategy: {
|
|
353
329
|
summary: "This provider applies DNS changes with a replace-all write strategy.",
|
|
354
|
-
fix: "
|
|
330
|
+
fix: "To preserve unrelated MX, TXT, CAA, NS, and wildcard records, review the full-zone diff carefully.",
|
|
355
331
|
},
|
|
356
332
|
dns_provider_snapshot_stale: {
|
|
357
333
|
summary: "The cached DNS provider snapshot is stale.",
|
|
@@ -359,7 +335,7 @@ export const ERROR_DOCS = {
|
|
|
359
335
|
},
|
|
360
336
|
dns_provider_snapshot_unavailable: {
|
|
361
337
|
summary: `${BRAND.productName} cannot cache the latest DNS provider snapshot.`,
|
|
362
|
-
fix: "Retry refresh after the cache or provider recovers. Do not edit connected-provider records from stale data.",
|
|
338
|
+
fix: "Retry the refresh after the cache or provider recovers. Do not edit connected-provider records from stale data.",
|
|
363
339
|
},
|
|
364
340
|
dns_provider_temporarily_unavailable: {
|
|
365
341
|
summary: "The DNS provider is rate-limited, degraded, or temporarily unavailable.",
|
|
@@ -431,7 +407,7 @@ export const ERROR_DOCS = {
|
|
|
431
407
|
},
|
|
432
408
|
domain_quota_exceeded: {
|
|
433
409
|
summary: "Adding this domain would exceed the plan's external domain allowance.",
|
|
434
|
-
fix: "Remove unused domains.
|
|
410
|
+
fix: "Remove unused domains. If you are still stuck, POST /v1/feedback with the error code and requestId.",
|
|
435
411
|
},
|
|
436
412
|
domain_registration_active: {
|
|
437
413
|
summary: "The domain has an active registration, which blocks this operation.",
|
|
@@ -467,23 +443,15 @@ export const ERROR_DOCS = {
|
|
|
467
443
|
},
|
|
468
444
|
enforcement_policy_overlap: {
|
|
469
445
|
summary: "Enforcement policy severity ranges overlap within a category.",
|
|
470
|
-
fix: "Adjust the category ranges so
|
|
446
|
+
fix: "Adjust the category ranges so at most one policy covers each severity.",
|
|
471
447
|
},
|
|
472
448
|
expired_token: {
|
|
473
449
|
summary: "The token is expired.",
|
|
474
450
|
fix: "Request a new token and retry.",
|
|
475
451
|
},
|
|
476
|
-
export_archive_not_ready: {
|
|
477
|
-
summary: "The export archive is still being prepared.",
|
|
478
|
-
fix: "Poll the export until its status is ready, then download the archive.",
|
|
479
|
-
},
|
|
480
|
-
export_version_not_found: {
|
|
481
|
-
summary: "The version requested for export was not found.",
|
|
482
|
-
fix: "List the space's versions and export an existing version id.",
|
|
483
|
-
},
|
|
484
452
|
feature_unavailable: {
|
|
485
453
|
summary: "This feature is not available on this deployment or plan.",
|
|
486
|
-
fix: "Check the feature's availability
|
|
454
|
+
fix: "Check the feature's availability. When the feature is enabled for your team, try again.",
|
|
487
455
|
},
|
|
488
456
|
files_mode_does_not_support_spa: {
|
|
489
457
|
summary: "SPA fallback cannot be combined with files-listing mode.",
|
|
@@ -495,39 +463,23 @@ export const ERROR_DOCS = {
|
|
|
495
463
|
},
|
|
496
464
|
free_external_proxy_disabled: {
|
|
497
465
|
summary: "Proxy routes to external upstreams are not available on the Free plan.",
|
|
498
|
-
fix: "Remove the proxy rules before publishing.
|
|
499
|
-
},
|
|
500
|
-
google_play_webhook_identity_not_configured: {
|
|
501
|
-
summary: "Google Play Pub/Sub push authentication is not configured on this deployment.",
|
|
502
|
-
fix: "Configure the exact push audience and dedicated Pub/Sub service-account email before enabling RTDN delivery.",
|
|
466
|
+
fix: "Remove the proxy rules before publishing. If you are still stuck, POST /v1/feedback with the error code and requestId.",
|
|
503
467
|
},
|
|
504
468
|
idempotency_conflict_in_progress: {
|
|
505
469
|
summary: "Another request with the same Idempotency-Key is still in flight.",
|
|
506
|
-
fix: "Wait for the original request to finish.
|
|
470
|
+
fix: "Wait for the original request to finish. The API will replay that request's response.",
|
|
507
471
|
},
|
|
508
472
|
idempotency_key_reused: {
|
|
509
473
|
summary: "The Idempotency-Key was reused with a different request body.",
|
|
510
474
|
fix: "Use a fresh key for new requests. Keys bind to one exact request body.",
|
|
511
475
|
},
|
|
512
|
-
import_archive_not_uploaded: {
|
|
513
|
-
summary: "The import has no uploaded archive yet.",
|
|
514
|
-
fix: "Upload the archive to the import's upload target, then finalize.",
|
|
515
|
-
},
|
|
516
|
-
import_not_cancelable: {
|
|
517
|
-
summary: "The import is past the point where it can be canceled.",
|
|
518
|
-
fix: "Wait for the import to finish. Completed imports can be deleted as versions.",
|
|
519
|
-
},
|
|
520
|
-
import_not_waiting_for_archive: {
|
|
521
|
-
summary: "The import is not waiting for an archive upload.",
|
|
522
|
-
fix: "Check the import status. If the archive step is complete, continue to the next step.",
|
|
523
|
-
},
|
|
524
476
|
incumbent_controls_dns: {
|
|
525
477
|
summary: "Another team controls this domain's DNS, so the operation is blocked.",
|
|
526
478
|
fix: "Prove control by completing domain verification, or coordinate with the incumbent.",
|
|
527
479
|
},
|
|
528
480
|
inject_invalid: {
|
|
529
481
|
summary: "The inject config key is malformed.",
|
|
530
|
-
fix: "Make inject an object whose head
|
|
482
|
+
fix: "Make `inject` an object whose `head`, `bodyStart`, `bodyEnd`, and `noscript` entries are arrays of up to 16 strings.",
|
|
531
483
|
},
|
|
532
484
|
inject_snippet_too_large: {
|
|
533
485
|
summary: "An inject snippet exceeds the per-snippet size limit.",
|
|
@@ -535,11 +487,11 @@ export const ERROR_DOCS = {
|
|
|
535
487
|
},
|
|
536
488
|
internal_error: {
|
|
537
489
|
summary: "Something went wrong on our side.",
|
|
538
|
-
fix: "Retry the request. If
|
|
490
|
+
fix: "Retry the request. If the error persists, contact support with the requestId.",
|
|
539
491
|
},
|
|
540
492
|
invalid_claim_token: {
|
|
541
|
-
summary: "The
|
|
542
|
-
fix: "Use the exact claim
|
|
493
|
+
summary: "The space key is invalid or does not match this space.",
|
|
494
|
+
fix: "Use the exact space key or claim link returned by the publish that created the space.",
|
|
543
495
|
},
|
|
544
496
|
invalid_continuation_token: {
|
|
545
497
|
summary: "The continuation token is invalid, expired, or already finished.",
|
|
@@ -559,16 +511,12 @@ export const ERROR_DOCS = {
|
|
|
559
511
|
},
|
|
560
512
|
invalid_domain_name: {
|
|
561
513
|
summary: "The domain name is not a valid registrable hostname.",
|
|
562
|
-
fix: "Check the spelling and use a fully
|
|
514
|
+
fix: "Check the spelling and use a fully qualified domain name.",
|
|
563
515
|
},
|
|
564
516
|
invalid_file_path: {
|
|
565
517
|
summary: "A file path in the request is not a valid space path.",
|
|
566
518
|
fix: "Use forward-slash relative paths without traversal segments.",
|
|
567
519
|
},
|
|
568
|
-
invalid_google_play_webhook_identity: {
|
|
569
|
-
summary: "The Google Play notification did not carry a valid Pub/Sub push identity.",
|
|
570
|
-
fix: "Send the notification through the configured authenticated Pub/Sub push subscription.",
|
|
571
|
-
},
|
|
572
520
|
invalid_grant: {
|
|
573
521
|
summary: "The authorization grant is invalid or was already used.",
|
|
574
522
|
fix: "Restart the login flow to obtain a new grant.",
|
|
@@ -607,7 +555,7 @@ export const ERROR_DOCS = {
|
|
|
607
555
|
},
|
|
608
556
|
invalid_user_code: {
|
|
609
557
|
summary: "The user code does not match a pending device login.",
|
|
610
|
-
fix: "Enter the code exactly as
|
|
558
|
+
fix: "Enter the code exactly as your CLI shows it. Codes expire after a few minutes.",
|
|
611
559
|
},
|
|
612
560
|
invalid_version_path: {
|
|
613
561
|
summary: "A file path in the version is not a valid space path.",
|
|
@@ -651,15 +599,15 @@ export const ERROR_DOCS = {
|
|
|
651
599
|
},
|
|
652
600
|
invitation_not_pending: {
|
|
653
601
|
summary: "The invitation is no longer pending.",
|
|
654
|
-
fix: "
|
|
602
|
+
fix: "If the member still needs to join, create a new invitation.",
|
|
655
603
|
},
|
|
656
604
|
ip_blocked: {
|
|
657
605
|
summary: "Requests from this IP address are blocked for abuse or policy reasons.",
|
|
658
|
-
fix: "
|
|
606
|
+
fix: "If you believe this block is a mistake, contact support with your IP address.",
|
|
659
607
|
},
|
|
660
608
|
job_not_found: {
|
|
661
609
|
summary: "The background job was not found.",
|
|
662
|
-
fix: "Verify the job id.
|
|
610
|
+
fix: "Verify the job id. Spacefast eventually prunes completed jobs.",
|
|
663
611
|
},
|
|
664
612
|
job_not_promotable: {
|
|
665
613
|
summary: "The job cannot be promoted in its current state.",
|
|
@@ -691,11 +639,11 @@ export const ERROR_DOCS = {
|
|
|
691
639
|
},
|
|
692
640
|
malware_detected: {
|
|
693
641
|
summary: "Malware was detected in the uploaded content.",
|
|
694
|
-
fix: "Remove the flagged files.
|
|
642
|
+
fix: "Remove the flagged files. If you believe the detection is a false positive, contact support.",
|
|
695
643
|
},
|
|
696
644
|
managed_domain_protected: {
|
|
697
645
|
summary: "This is a system-managed view.fast hostname and cannot be mutated like a custom domain.",
|
|
698
|
-
fix: "Use
|
|
646
|
+
fix: "Use the hostname as a read-only managed hostname. If you need editable DNS and binding controls, add a custom domain.",
|
|
699
647
|
},
|
|
700
648
|
manifest_body_too_large: {
|
|
701
649
|
summary: "The upload manifest body exceeds the maximum size.",
|
|
@@ -703,7 +651,7 @@ export const ERROR_DOCS = {
|
|
|
703
651
|
},
|
|
704
652
|
manifest_duplicate_path: {
|
|
705
653
|
summary: "The upload manifest declares the same path more than once.",
|
|
706
|
-
fix: "Deduplicate paths. Comparisons use the canonical
|
|
654
|
+
fix: "Deduplicate paths. Comparisons use the canonical form: decoded and NFC-normalized.",
|
|
707
655
|
},
|
|
708
656
|
manifest_too_many_files: {
|
|
709
657
|
summary: "The upload manifest declares more files than the allowed ceiling.",
|
|
@@ -723,15 +671,15 @@ export const ERROR_DOCS = {
|
|
|
723
671
|
},
|
|
724
672
|
move_target_capacity_lost: {
|
|
725
673
|
summary: "The selected move target no longer has capacity for the space.",
|
|
726
|
-
fix: "Retry the move with a different target or after capacity is freed.",
|
|
674
|
+
fix: "Retry the move with a different target, or retry after capacity is freed.",
|
|
727
675
|
},
|
|
728
676
|
name_managed_by_config: {
|
|
729
677
|
summary: "The space name is managed by sf.jsonc while its live version declares one.",
|
|
730
|
-
fix: "Change name in sf.jsonc and publish, or remove name from the file to rename the space through the API.",
|
|
678
|
+
fix: "Change `name` in `sf.jsonc` and publish, or remove `name` from the file to rename the space through the API.",
|
|
731
679
|
},
|
|
732
680
|
nameserver_delegation_required: {
|
|
733
681
|
summary: `This operation requires the domain to be delegated to ${BRAND.productName} nameservers.`,
|
|
734
|
-
fix: "Update the domain's nameservers at the registrar
|
|
682
|
+
fix: "Update the domain's nameservers at the registrar. After delegation propagates, retry.",
|
|
735
683
|
},
|
|
736
684
|
nameserver_divergence: {
|
|
737
685
|
summary: "The domain's observed nameservers diverge from the expected set.",
|
|
@@ -739,7 +687,7 @@ export const ERROR_DOCS = {
|
|
|
739
687
|
},
|
|
740
688
|
noop_publish: {
|
|
741
689
|
summary: "The publish matched the live version exactly, so nothing changed.",
|
|
742
|
-
fix: "No action needed. The existing live version already serves this content.",
|
|
690
|
+
fix: "No action is needed. The existing live version already serves this content.",
|
|
743
691
|
},
|
|
744
692
|
not_enrolled: {
|
|
745
693
|
summary: "This account is not enrolled in the private beta, so the API cannot be used yet.",
|
|
@@ -747,11 +695,11 @@ export const ERROR_DOCS = {
|
|
|
747
695
|
},
|
|
748
696
|
not_found: {
|
|
749
697
|
summary: "The requested resource was not found.",
|
|
750
|
-
fix: "Verify the id and that your credential can access the resource.",
|
|
698
|
+
fix: "Verify that the id is correct and that your credential can access the resource.",
|
|
751
699
|
},
|
|
752
700
|
path_case_collision: {
|
|
753
701
|
summary: "Two file paths differ only by letter case, which collides on serving.",
|
|
754
|
-
fix: "Rename one of the files so paths are unique case-insensitively.",
|
|
702
|
+
fix: "Rename one of the files so that paths are unique case-insensitively.",
|
|
755
703
|
},
|
|
756
704
|
path_too_long: {
|
|
757
705
|
summary: "A file path exceeds the maximum length.",
|
|
@@ -763,15 +711,11 @@ export const ERROR_DOCS = {
|
|
|
763
711
|
},
|
|
764
712
|
plan_grant_already_revoked: {
|
|
765
713
|
summary: "This plan grant was already revoked.",
|
|
766
|
-
fix: "
|
|
714
|
+
fix: "No action is needed. If the team should regain the plan, create a new grant.",
|
|
767
715
|
},
|
|
768
716
|
placement_invalid_burstable: {
|
|
769
717
|
summary: "The placement burstable option was used with an unsupported placement mode.",
|
|
770
|
-
fix: 'Set placement.mode to "dedicated" before setting placement.burstable
|
|
771
|
-
},
|
|
772
|
-
placement_mode_requires_plan: {
|
|
773
|
-
summary: "The requested placement mode requires a plan entitlement.",
|
|
774
|
-
fix: "Upgrade the team plan or choose shared placement.",
|
|
718
|
+
fix: 'Set `placement.mode` to `"dedicated"` before setting `placement.burstable`, or remove the burstable option.',
|
|
775
719
|
},
|
|
776
720
|
platform_tenant_immutable_client: {
|
|
777
721
|
summary: "The tenant's provider client cannot be changed.",
|
|
@@ -781,13 +725,25 @@ export const ERROR_DOCS = {
|
|
|
781
725
|
summary: "The requested key policy grants more than your own credential allows.",
|
|
782
726
|
fix: "Request a policy that is a subset of the credential creating the key.",
|
|
783
727
|
},
|
|
728
|
+
prebuilt_metadata_invalid: {
|
|
729
|
+
summary: "The metadata file next to the prebuilt archive exists but cannot be read or parsed, so the build's runtime shape is unknown.",
|
|
730
|
+
fix: "Re-run `sf build` to regenerate the archive and its metadata together. If the archive contains plain files, delete the metadata file.",
|
|
731
|
+
},
|
|
732
|
+
ingest_admission_exceeded: {
|
|
733
|
+
summary: "Too many concurrent uploads for this space.",
|
|
734
|
+
fix: "Wait for the Retry-After window, then resume. At most 4 uploads run per space at once.",
|
|
735
|
+
},
|
|
784
736
|
principal_space_mismatch: {
|
|
785
737
|
summary: "The space does not belong to the principal in the request.",
|
|
786
738
|
fix: "Use the space's owning team or account in the request path.",
|
|
787
739
|
},
|
|
740
|
+
promote_admission_exceeded: {
|
|
741
|
+
summary: "Too many archived files are being restored for this space right now.",
|
|
742
|
+
fix: "Retry shortly. Spacefast limits restores to protect the host.",
|
|
743
|
+
},
|
|
788
744
|
provider_error: {
|
|
789
|
-
summary: "
|
|
790
|
-
fix: "Retry. If the error persists, contact support with the requestId
|
|
745
|
+
summary: "WP Cloud reported an error.",
|
|
746
|
+
fix: "Retry. If the error persists, contact support with the `requestId`.",
|
|
791
747
|
},
|
|
792
748
|
provider_job_failed: {
|
|
793
749
|
summary: "A hosting-provider job failed while processing this operation.",
|
|
@@ -795,27 +751,35 @@ export const ERROR_DOCS = {
|
|
|
795
751
|
},
|
|
796
752
|
provider_job_timeout: {
|
|
797
753
|
summary: "A hosting-provider job timed out while processing this operation.",
|
|
798
|
-
fix: "Retry the operation. If the provider is slow
|
|
754
|
+
fix: "Retry the operation. If the provider is slow, wait and retry again.",
|
|
755
|
+
},
|
|
756
|
+
provider_privilege: {
|
|
757
|
+
summary: "WP Cloud does not grant this client permission to change the setting.",
|
|
758
|
+
fix: "Leave the provider-owned setting unchanged or contact support to request the required provider capability.",
|
|
799
759
|
},
|
|
800
760
|
provider_runtime_feature_unsupported: {
|
|
801
|
-
summary: "
|
|
761
|
+
summary: "WP Cloud does not support this runtime feature.",
|
|
802
762
|
fix: "Check the feature's availability for this site's runtime.",
|
|
803
763
|
},
|
|
804
764
|
provider_site_id_required: {
|
|
805
765
|
summary: "A provider site id is required for this internal operation.",
|
|
806
|
-
fix: "Pass the provider site
|
|
766
|
+
fix: "Pass the provider site id.",
|
|
807
767
|
},
|
|
808
768
|
proxy_upstream_denied: {
|
|
809
769
|
summary: "The proxy upstream is on a denied network and cannot be used.",
|
|
810
|
-
fix: "Proxy only to public HTTPS upstreams.
|
|
770
|
+
fix: "Proxy only to public HTTPS upstreams. Spacefast blocks private and internal addresses.",
|
|
811
771
|
},
|
|
812
772
|
proxy_upstream_unresolved: {
|
|
813
773
|
summary: "The proxy upstream hostname cannot be resolved.",
|
|
814
|
-
fix: "Verify the upstream DNS name resolves publicly, then publish again.",
|
|
774
|
+
fix: "Verify that the upstream DNS name resolves publicly, then publish again.",
|
|
775
|
+
},
|
|
776
|
+
publish_session_expired: {
|
|
777
|
+
summary: "This publish session expired before it was finalized.",
|
|
778
|
+
fix: "Start a new publish. Spacefast keeps declared uploads for 24 hours only.",
|
|
815
779
|
},
|
|
816
780
|
publish_archive_compression_ratio_exceeded: {
|
|
817
781
|
summary: "The archive's compression ratio is suspiciously high and was rejected.",
|
|
818
|
-
fix: "Repackage the content without highly
|
|
782
|
+
fix: "Repackage the content without highly compressible filler data.",
|
|
819
783
|
},
|
|
820
784
|
publish_archive_expanded_size_exceeded: {
|
|
821
785
|
summary: "The archive expands beyond the maximum allowed total size.",
|
|
@@ -831,7 +795,7 @@ export const ERROR_DOCS = {
|
|
|
831
795
|
},
|
|
832
796
|
publish_base_changed: {
|
|
833
797
|
summary: "Someone published new space settings after the base you loaded, so saving would overwrite their change.",
|
|
834
|
-
fix: "Reload the latest settings, review the difference, and save again. Pass force only to overwrite deliberately.",
|
|
798
|
+
fix: "Reload the latest settings, review the difference, and save again. Pass `force` only to overwrite deliberately.",
|
|
835
799
|
},
|
|
836
800
|
publish_bytes_missing: {
|
|
837
801
|
summary: "The publish has no complete staged content to materialize.",
|
|
@@ -839,7 +803,7 @@ export const ERROR_DOCS = {
|
|
|
839
803
|
},
|
|
840
804
|
publish_config_unsupported: {
|
|
841
805
|
summary: "The publish carries configuration this endpoint does not support.",
|
|
842
|
-
fix: "Move the configuration into sf.jsonc or the space settings.",
|
|
806
|
+
fix: "Move the configuration into `sf.jsonc` or the space settings.",
|
|
843
807
|
},
|
|
844
808
|
publish_failed: {
|
|
845
809
|
summary: "The publish failed before going live.",
|
|
@@ -859,11 +823,11 @@ export const ERROR_DOCS = {
|
|
|
859
823
|
},
|
|
860
824
|
publish_not_cancelable: {
|
|
861
825
|
summary: "The publish is past the point where it can be canceled.",
|
|
862
|
-
fix: "Wait for the publish to finish
|
|
826
|
+
fix: "Wait for the publish to finish. To roll back, promote a previous version.",
|
|
863
827
|
},
|
|
864
828
|
publish_path_collision: {
|
|
865
829
|
summary: "Two different artifacts would serve the same URL after directory-index or clean-URL resolution.",
|
|
866
|
-
fix: "Rename or remove one artifact so every request route has one owner.",
|
|
830
|
+
fix: "Rename or remove one artifact so that every request route has one owner.",
|
|
867
831
|
},
|
|
868
832
|
publish_path_invalid: {
|
|
869
833
|
summary: "A publish path is not a relative, normalized POSIX path.",
|
|
@@ -871,7 +835,7 @@ export const ERROR_DOCS = {
|
|
|
871
835
|
},
|
|
872
836
|
publish_setup_failed: {
|
|
873
837
|
summary: "Provisioning for this publish failed.",
|
|
874
|
-
fix: "Retry the publish. If
|
|
838
|
+
fix: "Retry the publish. If the error persists, contact support with the `requestId`.",
|
|
875
839
|
},
|
|
876
840
|
publish_snapshot_empty: {
|
|
877
841
|
summary: "An empty snapshot was sent without an explicit base version.",
|
|
@@ -889,6 +853,14 @@ export const ERROR_DOCS = {
|
|
|
889
853
|
summary: "The named job queue does not exist.",
|
|
890
854
|
fix: "Check the queue name against the operator queue list.",
|
|
891
855
|
},
|
|
856
|
+
response_headers_unservable: {
|
|
857
|
+
summary: "A file needs a response header that the platform cannot deliver for large files.",
|
|
858
|
+
fix: "Reduce the file below 100 MiB or drop the custom header.",
|
|
859
|
+
},
|
|
860
|
+
response_table_too_large: {
|
|
861
|
+
summary: "A compiled response table exceeded the 1 MiB per-file limit.",
|
|
862
|
+
fix: "This version has an unusually dense path set. Contact support with the `requestId`.",
|
|
863
|
+
},
|
|
892
864
|
rate_limited: {
|
|
893
865
|
summary: "Too many requests were made in a short window.",
|
|
894
866
|
fix: "Wait for the window in the Retry-After header to pass, then retry.",
|
|
@@ -903,11 +875,15 @@ export const ERROR_DOCS = {
|
|
|
903
875
|
},
|
|
904
876
|
resource_revision_changed: {
|
|
905
877
|
summary: "The resource changed after you loaded it, so the stale write was rejected.",
|
|
906
|
-
fix: "Use the current resource returned in error.details.current
|
|
878
|
+
fix: "Use the current resource returned in `error.details.current`, reapply the intended fields, and send its revision as `expectedRevision`.",
|
|
879
|
+
},
|
|
880
|
+
review_item_claimed: {
|
|
881
|
+
summary: "Another reviewer already claimed this review item.",
|
|
882
|
+
fix: "Pick a different item, or ask the current assignee to release it. The assignee's id is in `error.details.assignedToUserId`.",
|
|
907
883
|
},
|
|
908
884
|
routing_rules_over_plan: {
|
|
909
885
|
summary: "The published _redirects and _headers exceed the plan's routing-rule allowance.",
|
|
910
|
-
fix: "Reduce the rule count.
|
|
886
|
+
fix: "Reduce the rule count. If you still need more rules, POST to `/v1/feedback` with the error code and the `requestId`.",
|
|
911
887
|
},
|
|
912
888
|
runtime_action_forbidden: {
|
|
913
889
|
summary: "The runtime credential does not allow this action.",
|
|
@@ -915,7 +891,7 @@ export const ERROR_DOCS = {
|
|
|
915
891
|
},
|
|
916
892
|
runtime_api_not_found: {
|
|
917
893
|
summary: "The runtime management endpoint was not found.",
|
|
918
|
-
fix: "Send the request with the management hostname as the Host header.
|
|
894
|
+
fix: "Send the request with the management hostname as the Host header. Spacefast does not serve management routes on public hostnames.",
|
|
919
895
|
},
|
|
920
896
|
runtime_callback_forbidden: {
|
|
921
897
|
summary: "The runtime callback cannot be authenticated.",
|
|
@@ -923,23 +899,19 @@ export const ERROR_DOCS = {
|
|
|
923
899
|
},
|
|
924
900
|
runtime_dev_unsupported: {
|
|
925
901
|
summary: "`sf dev` cannot run this runtime locally yet.",
|
|
926
|
-
fix: "Run your framework's own dev server
|
|
927
|
-
},
|
|
928
|
-
runtime_engine_zip_missing: {
|
|
929
|
-
summary: "The runtime engine artifact is missing from this deployment.",
|
|
930
|
-
fix: "Rebuild the control plane so dist/runtime-engine.zip exists.",
|
|
902
|
+
fix: "Run your framework's own dev server, such as `next dev` or `vite`. When you are ready, publish with `sf publish`.",
|
|
931
903
|
},
|
|
932
904
|
runtime_hostname_unassigned: {
|
|
933
905
|
summary: "The hostname is not assigned to a runtime, so the request cannot be routed.",
|
|
934
|
-
fix: `Verify the binding is active and DNS points at ${BRAND.productName}.`,
|
|
906
|
+
fix: `Verify that the binding is active and that DNS points at ${BRAND.productName}.`,
|
|
935
907
|
},
|
|
936
908
|
runtime_instance_mismatch: {
|
|
937
909
|
summary: "The request reached a different runtime instance than the one it was issued for.",
|
|
938
|
-
fix: "Re-request instructions. The space is on another instance
|
|
910
|
+
fix: "Re-request instructions. The space is on another instance.",
|
|
939
911
|
},
|
|
940
912
|
runtime_jti_missing: {
|
|
941
913
|
summary: "The runtime token is missing its replay-protection id.",
|
|
942
|
-
fix: "Mint a fresh runtime token. Tokens must carry a jti claim.",
|
|
914
|
+
fix: "Mint a fresh runtime token. Tokens must carry a `jti` claim.",
|
|
943
915
|
},
|
|
944
916
|
runtime_jti_replayed: {
|
|
945
917
|
summary: "The runtime token was already used. Replays are rejected.",
|
|
@@ -951,7 +923,7 @@ export const ERROR_DOCS = {
|
|
|
951
923
|
},
|
|
952
924
|
runtime_kind_mismatch: {
|
|
953
925
|
summary: "This operation is only available for a different runtime kind.",
|
|
954
|
-
fix: "Check `sf runtime status` for what the live version actually runs, then use the
|
|
926
|
+
fix: "Check `sf runtime status` for what the live version actually runs, then use the operations that runtime supports.",
|
|
955
927
|
},
|
|
956
928
|
runtime_management_unavailable: {
|
|
957
929
|
summary: "The runtime management surface is unavailable for this site.",
|
|
@@ -959,19 +931,27 @@ export const ERROR_DOCS = {
|
|
|
959
931
|
},
|
|
960
932
|
runtime_not_provisioned: {
|
|
961
933
|
summary: "The space does not serve a published version yet, so it has no runtime data to read.",
|
|
962
|
-
fix: "Publish a version first. If a publish is already running, wait for it
|
|
934
|
+
fix: "Publish a version first. If a publish is already running, wait for it. The operation receipt reports progress.",
|
|
963
935
|
},
|
|
964
936
|
runtime_operation_missing: {
|
|
965
937
|
summary: "The runtime operation referenced by this request was not found.",
|
|
966
938
|
fix: "Re-request instructions and retry with a current operation id.",
|
|
967
939
|
},
|
|
940
|
+
runtime_purge_failed: {
|
|
941
|
+
summary: "Content updated but the edge cache purge did not confirm.",
|
|
942
|
+
fix: "The runtime retries automatically. Recent visitors may briefly see the previous version.",
|
|
943
|
+
},
|
|
944
|
+
runtime_release_unverifiable: {
|
|
945
|
+
summary: "The requested platform release could not be verified at its origin.",
|
|
946
|
+
fix: "Check that the release exists and published its full set of artifacts, then request it again.",
|
|
947
|
+
},
|
|
968
948
|
runtime_scope_forbidden: {
|
|
969
949
|
summary: "The runtime token's scope does not cover this path or action.",
|
|
970
950
|
fix: "Use the token minted for this exact session, space, and step.",
|
|
971
951
|
},
|
|
972
952
|
runtime_token_bad_signature: {
|
|
973
953
|
summary: "The runtime token signature did not verify.",
|
|
974
|
-
fix: "Mint a fresh token.
|
|
954
|
+
fix: "Mint a fresh runtime token. If the error persists, verify clocks and JWKS freshness.",
|
|
975
955
|
},
|
|
976
956
|
runtime_token_expired: {
|
|
977
957
|
summary: "The runtime token is expired.",
|
|
@@ -983,7 +963,7 @@ export const ERROR_DOCS = {
|
|
|
983
963
|
},
|
|
984
964
|
runtime_unauthorized: {
|
|
985
965
|
summary: "The request to the runtime carried no valid credential.",
|
|
986
|
-
fix: "Send the runtime
|
|
966
|
+
fix: "Send the runtime token in the Authorization header.",
|
|
987
967
|
},
|
|
988
968
|
runtime_upload_operation_not_supported: {
|
|
989
969
|
summary: "The runtime upload session does not support this operation.",
|
|
@@ -995,7 +975,7 @@ export const ERROR_DOCS = {
|
|
|
995
975
|
},
|
|
996
976
|
scan_pending: {
|
|
997
977
|
summary: "The content is still being scanned for safety and cannot be served yet.",
|
|
998
|
-
fix: "Wait for the scan to finish. Serving resumes automatically once
|
|
978
|
+
fix: "Wait for the scan to finish. Serving resumes automatically once the scan clears.",
|
|
999
979
|
},
|
|
1000
980
|
secret_variable_in_template: {
|
|
1001
981
|
summary: "A secret variable was referenced in a template, which is blocked.",
|
|
@@ -1003,7 +983,7 @@ export const ERROR_DOCS = {
|
|
|
1003
983
|
},
|
|
1004
984
|
service_booting: {
|
|
1005
985
|
summary: "The process that received this request is still starting and cannot serve it yet.",
|
|
1006
|
-
fix: "Wait for the Retry-After window, then send the same request again.",
|
|
986
|
+
fix: "Wait for the `Retry-After` window, then send the same request again.",
|
|
1007
987
|
},
|
|
1008
988
|
service_signature_invalid: {
|
|
1009
989
|
summary: "The service request signature cannot be verified.",
|
|
@@ -1011,7 +991,7 @@ export const ERROR_DOCS = {
|
|
|
1011
991
|
},
|
|
1012
992
|
site_already_deleted: {
|
|
1013
993
|
summary: "The site was already deleted.",
|
|
1014
|
-
fix: "No action needed. The site is gone.",
|
|
994
|
+
fix: "No action is needed. The site is gone.",
|
|
1015
995
|
},
|
|
1016
996
|
site_has_live_spaces: {
|
|
1017
997
|
summary: "The site still has live spaces assigned to it, so it cannot be deleted.",
|
|
@@ -1059,27 +1039,23 @@ export const ERROR_DOCS = {
|
|
|
1059
1039
|
},
|
|
1060
1040
|
space_already_claimed: {
|
|
1061
1041
|
summary: "The space was already claimed. A claim can only succeed once.",
|
|
1062
|
-
fix: "If you published this space, exchange your
|
|
1063
|
-
},
|
|
1064
|
-
space_capacity_warming: {
|
|
1065
|
-
summary: "This space is waiting on serving capacity that is being provisioned in the background.",
|
|
1066
|
-
fix: "Wait for the Retry-After window, then send the same publish again. No version was created and no files were uploaded.",
|
|
1042
|
+
fix: "If you published this space, exchange your space key once at `POST /v1/claim/exchange`. Keep publishing to the same `spaceId` with that durable API key. Otherwise ask the owner for access. Do not publish a duplicate space.",
|
|
1067
1043
|
},
|
|
1068
1044
|
space_claim_unavailable: {
|
|
1069
1045
|
summary: "This space cannot be claimed.",
|
|
1070
|
-
fix: "Only anonymous, unexpired spaces with a valid
|
|
1046
|
+
fix: "Only anonymous, unexpired spaces with a valid space key can be claimed.",
|
|
1071
1047
|
},
|
|
1072
1048
|
space_claimed_credential_available: {
|
|
1073
|
-
summary: "The space was claimed and its owner kept agent publishing enabled; this
|
|
1074
|
-
fix: "POST /v1/
|
|
1049
|
+
summary: "The space was claimed and its owner kept agent publishing enabled; this space key now works exactly once as an exchange voucher.",
|
|
1050
|
+
fix: "`POST /v1/claim/exchange` with this space key as bearer auth. Save the returned API key (for example in `.spacefast/state.json`), then retry the request with that key as `Authorization: Bearer`. Do not publish a new space.",
|
|
1075
1051
|
},
|
|
1076
1052
|
space_disabled: {
|
|
1077
1053
|
summary: "The space is disabled and cannot be served or modified.",
|
|
1078
|
-
fix: "Check the disabled reason on the space.
|
|
1054
|
+
fix: "Check the disabled reason on the space. The reason explains how to restore the space.",
|
|
1079
1055
|
},
|
|
1080
1056
|
space_expired: {
|
|
1081
1057
|
summary: "The space expired and is no longer served.",
|
|
1082
|
-
fix: "If
|
|
1058
|
+
fix: "If the space is within the recovery window, claim or restore it. Otherwise publish again.",
|
|
1083
1059
|
},
|
|
1084
1060
|
space_has_active_publish: {
|
|
1085
1061
|
summary: "The space has a publish in progress, which blocks this operation.",
|
|
@@ -1093,37 +1069,13 @@ export const ERROR_DOCS = {
|
|
|
1093
1069
|
summary: "The space is missing its persisted default hostname identity.",
|
|
1094
1070
|
fix: "Contact support. Retrying cannot safely recreate a permanent hostname identity.",
|
|
1095
1071
|
},
|
|
1096
|
-
space_import_archive_invalid: {
|
|
1097
|
-
summary: `The import archive is not a valid ${BRAND.productName} export.`,
|
|
1098
|
-
fix: "Export the source space again and upload the unmodified archive.",
|
|
1099
|
-
},
|
|
1100
|
-
space_import_archive_too_large: {
|
|
1101
|
-
summary: "The import archive exceeds the maximum allowed size.",
|
|
1102
|
-
fix: "Reduce the export size, or import versions individually.",
|
|
1103
|
-
},
|
|
1104
|
-
space_import_config_only_archive: {
|
|
1105
|
-
summary: "The archive contains only configuration and cannot be imported as content.",
|
|
1106
|
-
fix: "Include files in the export, or apply the configuration directly.",
|
|
1107
|
-
},
|
|
1108
|
-
space_import_runtime_schema_unsupported: {
|
|
1109
|
-
summary: "The export was produced by an unsupported runtime schema version.",
|
|
1110
|
-
fix: "Re-export from a current runtime, or upgrade before exporting.",
|
|
1111
|
-
},
|
|
1112
|
-
space_move_would_strand_zero_data: {
|
|
1113
|
-
summary: "The Space runs Zero, whose database and object storage live on the site the Space is placed on. Relocating it would strand that data on the old site, so the move is refused.",
|
|
1114
|
-
fix: "Nothing was moved and no data was lost. Migrating Zero data between sites is not implemented. Contact support if the space genuinely has to be relocated.",
|
|
1115
|
-
},
|
|
1116
|
-
space_moving: {
|
|
1117
|
-
summary: "The space is moving between sites, which blocks this operation.",
|
|
1118
|
-
fix: "Wait for the move to finish, then retry.",
|
|
1119
|
-
},
|
|
1120
1072
|
space_no_live_version: {
|
|
1121
1073
|
summary: "The space has no live version, so this operation has nothing to act on.",
|
|
1122
1074
|
fix: "Publish a version to the space, then retry.",
|
|
1123
1075
|
},
|
|
1124
1076
|
space_not_disabled: {
|
|
1125
1077
|
summary: "The space is not disabled, so it cannot be restored.",
|
|
1126
|
-
fix: "No action needed. The space is already active.",
|
|
1078
|
+
fix: "No action is needed. The space is already active.",
|
|
1127
1079
|
},
|
|
1128
1080
|
space_not_restorable: {
|
|
1129
1081
|
summary: "The space is past its recovery window and cannot be restored.",
|
|
@@ -1143,11 +1095,11 @@ export const ERROR_DOCS = {
|
|
|
1143
1095
|
},
|
|
1144
1096
|
space_ref_ambiguous: {
|
|
1145
1097
|
summary: "The space reference matches more than one accessible space.",
|
|
1146
|
-
fix: "Use the spc_ id, or scope the reference with a teamRef
|
|
1098
|
+
fix: "Use the `spc_` id, or scope the reference with a `teamRef`.",
|
|
1147
1099
|
},
|
|
1148
1100
|
space_ref_required: {
|
|
1149
1101
|
summary: "A space reference is required for this operation.",
|
|
1150
|
-
fix: "Pass a spc_ id, slug, or hostname.",
|
|
1102
|
+
fix: "Pass a `spc_` id, slug, or hostname.",
|
|
1151
1103
|
},
|
|
1152
1104
|
space_transferring: {
|
|
1153
1105
|
summary: "The space has a transfer in progress, which blocks this operation.",
|
|
@@ -1174,36 +1126,36 @@ export const ERROR_DOCS = {
|
|
|
1174
1126
|
fix: "Target a static-runtime space.",
|
|
1175
1127
|
},
|
|
1176
1128
|
storage_auth_required: {
|
|
1177
|
-
summary: "This storage operation requires an authenticated
|
|
1178
|
-
fix: "Sign in to the
|
|
1129
|
+
summary: "This storage operation requires an authenticated visitor.",
|
|
1130
|
+
fix: "Sign in to the space, then retry the storage operation.",
|
|
1179
1131
|
},
|
|
1180
1132
|
storage_bucket_unavailable: {
|
|
1181
1133
|
summary: "No usable internal storage bucket is configured for this operation.",
|
|
1182
1134
|
fix: "Check the storage bucket registry and credential environment references, then retry.",
|
|
1183
1135
|
},
|
|
1184
1136
|
storage_content_blocked: {
|
|
1185
|
-
summary: "The object contains executable or active web content that
|
|
1137
|
+
summary: "The object contains executable or active web content that Spacefast storage does not serve.",
|
|
1186
1138
|
fix: "Upload a passive file type without HTML, script, SVG, PHP, or executable bytes.",
|
|
1187
1139
|
},
|
|
1188
1140
|
storage_delete_forbidden: {
|
|
1189
|
-
summary: "The current
|
|
1141
|
+
summary: "The current visitor did not upload this object.",
|
|
1190
1142
|
fix: "Sign in as the original uploader before deleting the object.",
|
|
1191
1143
|
},
|
|
1192
1144
|
storage_empty_file: {
|
|
1193
|
-
summary: "The
|
|
1145
|
+
summary: "The storage upload is empty.",
|
|
1194
1146
|
fix: "Upload a file containing at least 1 byte.",
|
|
1195
1147
|
},
|
|
1196
1148
|
storage_file_too_large: {
|
|
1197
|
-
summary: "The
|
|
1149
|
+
summary: "The storage object exceeds the 5 MiB file limit.",
|
|
1198
1150
|
fix: "Upload a smaller object.",
|
|
1199
1151
|
},
|
|
1200
1152
|
storage_key_invalid: {
|
|
1201
|
-
summary: "The
|
|
1202
|
-
fix: "Use the
|
|
1153
|
+
summary: "The storage object id is malformed.",
|
|
1154
|
+
fix: "Use the 32-character object id returned by `storage.upload`.",
|
|
1203
1155
|
},
|
|
1204
1156
|
storage_object_not_found: {
|
|
1205
|
-
summary: "The requested
|
|
1206
|
-
fix: "Check the object
|
|
1157
|
+
summary: "The requested storage object does not exist.",
|
|
1158
|
+
fix: "Check the object id or upload the object again.",
|
|
1207
1159
|
},
|
|
1208
1160
|
storage_quota_already_unlimited: {
|
|
1209
1161
|
summary: "The team already has unlimited storage.",
|
|
@@ -1215,23 +1167,19 @@ export const ERROR_DOCS = {
|
|
|
1215
1167
|
},
|
|
1216
1168
|
storage_quota_exceeded: {
|
|
1217
1169
|
summary: "The operation would exceed its storage allowance.",
|
|
1218
|
-
fix: "Delete unused
|
|
1170
|
+
fix: "Delete unused storage objects or old versions, reduce the upload size, then retry.",
|
|
1219
1171
|
},
|
|
1220
1172
|
storage_unavailable: {
|
|
1221
|
-
summary: "The
|
|
1222
|
-
fix: "Retry on a healthy runtime.
|
|
1223
|
-
},
|
|
1224
|
-
storage_usage_unavailable: {
|
|
1225
|
-
summary: "Storage usage cannot be computed right now.",
|
|
1226
|
-
fix: "Retry shortly.",
|
|
1173
|
+
summary: "The runtime cannot read or persist object storage.",
|
|
1174
|
+
fix: "Retry on a healthy runtime. If the failure persists, contact support.",
|
|
1227
1175
|
},
|
|
1228
1176
|
stripe_error: {
|
|
1229
1177
|
summary: "The billing provider reported an error.",
|
|
1230
|
-
fix: "Retry. If
|
|
1178
|
+
fix: "Retry. If the error persists, check the team's billing settings.",
|
|
1231
1179
|
},
|
|
1232
1180
|
superseded_by_publish: {
|
|
1233
1181
|
summary: "A newer publish superseded this operation, so it was skipped.",
|
|
1234
|
-
fix: "No action needed. The newer publish already carries the change.",
|
|
1182
|
+
fix: "No action is needed. The newer publish already carries the change.",
|
|
1235
1183
|
},
|
|
1236
1184
|
takeover_notice_window: {
|
|
1237
1185
|
summary: "The hostname was recently bound elsewhere. A takeover notice window applies.",
|
|
@@ -1263,11 +1211,11 @@ export const ERROR_DOCS = {
|
|
|
1263
1211
|
},
|
|
1264
1212
|
template_file_too_large: {
|
|
1265
1213
|
summary: "A template file exceeds the maximum size for substitution.",
|
|
1266
|
-
fix: "Keep template files
|
|
1214
|
+
fix: "Keep template files at or under 16 KB.",
|
|
1267
1215
|
},
|
|
1268
1216
|
template_not_in_version: {
|
|
1269
1217
|
summary: "The configuration names a template file the version does not contain.",
|
|
1270
|
-
fix: "Upload the file or remove its templates entry from sf.jsonc
|
|
1218
|
+
fix: "Upload the file or remove its `templates` entry from `sf.jsonc`.",
|
|
1271
1219
|
},
|
|
1272
1220
|
template_variable_unresolved: {
|
|
1273
1221
|
summary: "A template references a variable that has no value.",
|
|
@@ -1299,23 +1247,19 @@ export const ERROR_DOCS = {
|
|
|
1299
1247
|
},
|
|
1300
1248
|
theme_value_invalid: {
|
|
1301
1249
|
summary: "A theme value in the configuration is outside the allowed grammar.",
|
|
1302
|
-
fix: "Use allowed CSS values.
|
|
1250
|
+
fix: "Use allowed CSS values. Otherwise the offending key is dropped with a warning.",
|
|
1303
1251
|
},
|
|
1304
1252
|
transfer_cross_tenant_unsupported: {
|
|
1305
1253
|
summary: "Spaces cannot be transferred across tenants.",
|
|
1306
1254
|
fix: "Export the space and import it under the target tenant instead.",
|
|
1307
1255
|
},
|
|
1308
|
-
transfer_move_failed: {
|
|
1309
|
-
summary: "The space move backing this transfer failed.",
|
|
1310
|
-
fix: "Retry the transfer. If it persists, contact support with the transfer id.",
|
|
1311
|
-
},
|
|
1312
1256
|
transfer_not_cancelable: {
|
|
1313
1257
|
summary: "The transfer is past the point where it can be canceled.",
|
|
1314
1258
|
fix: "Wait for the transfer to finish.",
|
|
1315
1259
|
},
|
|
1316
1260
|
transfer_push_failed: {
|
|
1317
1261
|
summary: "The source runtime cannot push the space blobs into the transfer bucket.",
|
|
1318
|
-
fix: "Retry the move. If
|
|
1262
|
+
fix: "Retry the move. If the failure persists, check the source runtime and bucket configuration.",
|
|
1319
1263
|
},
|
|
1320
1264
|
transfer_source_changed: {
|
|
1321
1265
|
summary: "The space changed since the transfer was created, so it must be re-confirmed.",
|
|
@@ -1327,7 +1271,7 @@ export const ERROR_DOCS = {
|
|
|
1327
1271
|
},
|
|
1328
1272
|
transfer_verify_failed: {
|
|
1329
1273
|
summary: "The target runtime cannot verify transferred blob content.",
|
|
1330
|
-
fix: "Retry the move. If
|
|
1274
|
+
fix: "Retry the move. If the failure persists, check the target runtime and bucket integrity.",
|
|
1331
1275
|
},
|
|
1332
1276
|
unauthorized: {
|
|
1333
1277
|
summary: "The request carried no valid credential.",
|
|
@@ -1355,15 +1299,11 @@ export const ERROR_DOCS = {
|
|
|
1355
1299
|
},
|
|
1356
1300
|
user_banned: {
|
|
1357
1301
|
summary: "This user is banned for a policy or abuse violation and cannot perform this action.",
|
|
1358
|
-
fix: "
|
|
1302
|
+
fix: "If you believe the ban is a mistake, contact support to appeal it.",
|
|
1359
1303
|
},
|
|
1360
1304
|
validation_error: {
|
|
1361
1305
|
summary: "A request field failed validation.",
|
|
1362
|
-
fix: "Fix the field referenced by pointer and details
|
|
1363
|
-
},
|
|
1364
|
-
variable_cascade_failed: {
|
|
1365
|
-
summary: "Republishing spaces after a variable change failed.",
|
|
1366
|
-
fix: "Check the operation's diagnostics. Live content keeps serving the previous values.",
|
|
1306
|
+
fix: "Fix the field referenced by `pointer` and `details`, then retry.",
|
|
1367
1307
|
},
|
|
1368
1308
|
verification_required: {
|
|
1369
1309
|
summary: "Domain verification is required before this operation.",
|
|
@@ -1371,7 +1311,7 @@ export const ERROR_DOCS = {
|
|
|
1371
1311
|
},
|
|
1372
1312
|
version_already_live: {
|
|
1373
1313
|
summary: "The version is already live on this channel.",
|
|
1374
|
-
fix: "No action needed.",
|
|
1314
|
+
fix: "No action is needed.",
|
|
1375
1315
|
},
|
|
1376
1316
|
version_artifact_not_found: {
|
|
1377
1317
|
summary: "The requested version artifact was not found.",
|
|
@@ -1415,7 +1355,7 @@ export const ERROR_DOCS = {
|
|
|
1415
1355
|
},
|
|
1416
1356
|
version_in_use: {
|
|
1417
1357
|
summary: "The version is referenced by one or more channels and cannot be deleted.",
|
|
1418
|
-
fix: "Promote another version on those channels first.
|
|
1358
|
+
fix: "Promote another version on those channels first. The `details` field lists them.",
|
|
1419
1359
|
},
|
|
1420
1360
|
version_live: {
|
|
1421
1361
|
summary: "The version is live and cannot be deleted.",
|
|
@@ -1447,7 +1387,7 @@ export const ERROR_DOCS = {
|
|
|
1447
1387
|
},
|
|
1448
1388
|
version_quota_exceeded: {
|
|
1449
1389
|
summary: "The space is at its version quota.",
|
|
1450
|
-
fix: "Delete old versions.
|
|
1390
|
+
fix: "Delete old versions. If the quota error persists, `POST /v1/feedback` with the error code and request id.",
|
|
1451
1391
|
},
|
|
1452
1392
|
version_total_bytes_exceeded: {
|
|
1453
1393
|
summary: "The version exceeds the maximum total size.",
|
|
@@ -1461,17 +1401,13 @@ export const ERROR_DOCS = {
|
|
|
1461
1401
|
summary: "WHOIS data is unavailable for this domain right now.",
|
|
1462
1402
|
fix: "Retry later.",
|
|
1463
1403
|
},
|
|
1464
|
-
zero_activating: {
|
|
1465
|
-
summary: "Zero endpoints are activating.",
|
|
1466
|
-
fix: "Wait for the dedicated runtime move to complete, then retry the request.",
|
|
1467
|
-
},
|
|
1468
1404
|
zero_ai_unavailable: {
|
|
1469
1405
|
summary: "The local Zero AI service is not configured.",
|
|
1470
1406
|
fix: "Configure an AI handler in the project, then restart `sf dev` before calling the AI service.",
|
|
1471
1407
|
},
|
|
1472
1408
|
zero_artifact_abi_mismatch: {
|
|
1473
1409
|
summary: "The Zero endpoint artifact was built for a different runner ABI.",
|
|
1474
|
-
fix: `Rebuild
|
|
1410
|
+
fix: `Rebuild the Zero project with the current ${BRAND.productName} CLI and runtime, then publish it again.`,
|
|
1475
1411
|
},
|
|
1476
1412
|
zero_artifact_invalid: {
|
|
1477
1413
|
summary: "The Zero endpoint artifact is missing required runtime metadata.",
|
|
@@ -1491,7 +1427,7 @@ export const ERROR_DOCS = {
|
|
|
1491
1427
|
},
|
|
1492
1428
|
zero_auth_unavailable: {
|
|
1493
1429
|
summary: "Hosted Zero auth is not configured for this deployment.",
|
|
1494
|
-
fix: "Finalize the Zero version with hosted auth URLs or use guest
|
|
1430
|
+
fix: "Finalize the Zero version with hosted auth URLs, or use guest or local auth.",
|
|
1495
1431
|
},
|
|
1496
1432
|
zero_blob_key_invalid: {
|
|
1497
1433
|
summary: "The local Zero blob key is invalid.",
|
|
@@ -1511,15 +1447,15 @@ export const ERROR_DOCS = {
|
|
|
1511
1447
|
},
|
|
1512
1448
|
zero_bootstrap_encode_failed: {
|
|
1513
1449
|
summary: "The Zero runner cannot encode the JavaScript bootstrap data.",
|
|
1514
|
-
fix: "Retry with valid request metadata.
|
|
1450
|
+
fix: "Retry with valid request metadata. If the issue persists, report it.",
|
|
1515
1451
|
},
|
|
1516
1452
|
zero_bytecode_hash_mismatch: {
|
|
1517
1453
|
summary: "The Zero endpoint bytecode hash does not match its artifact metadata.",
|
|
1518
|
-
fix: "Rebuild and
|
|
1454
|
+
fix: "Rebuild and publish again so bytecode and endpoint metadata are from the same build.",
|
|
1519
1455
|
},
|
|
1520
1456
|
zero_bytecode_invalid: {
|
|
1521
1457
|
summary: "The Zero endpoint bytecode cannot be loaded by QuickJS.",
|
|
1522
|
-
fix: "Rebuild the project with the current Zero runner and
|
|
1458
|
+
fix: "Rebuild the project with the current Zero runner and publish again.",
|
|
1523
1459
|
},
|
|
1524
1460
|
zero_bytecode_path_invalid: {
|
|
1525
1461
|
summary: "The Zero endpoint bytecode path is invalid.",
|
|
@@ -1531,7 +1467,7 @@ export const ERROR_DOCS = {
|
|
|
1531
1467
|
},
|
|
1532
1468
|
zero_capabilities_encode_failed: {
|
|
1533
1469
|
summary: "The runtime cannot encode the Zero endpoint capabilities.",
|
|
1534
|
-
fix: "Rebuild with valid capability metadata.
|
|
1470
|
+
fix: "Rebuild with valid capability metadata. If the failure persists, report it.",
|
|
1535
1471
|
},
|
|
1536
1472
|
zero_client_bundle_not_loaded: {
|
|
1537
1473
|
summary: "The local Zero dev client bundle is not generated or loaded.",
|
|
@@ -1539,11 +1475,11 @@ export const ERROR_DOCS = {
|
|
|
1539
1475
|
},
|
|
1540
1476
|
zero_db_connect_failed: {
|
|
1541
1477
|
summary: "The Zero runner cannot connect to the configured database.",
|
|
1542
|
-
fix: "Verify DATABASE_URL or the generated MySQL connection variables and retry.",
|
|
1478
|
+
fix: "Verify `DATABASE_URL` or the generated MySQL connection variables and retry.",
|
|
1543
1479
|
},
|
|
1544
1480
|
zero_db_execute_failed: {
|
|
1545
1481
|
summary: "A Zero database write failed.",
|
|
1546
|
-
fix: "Inspect the mutation, schema, and database logs
|
|
1482
|
+
fix: "Inspect the mutation, schema, and database logs. Fix the SQL issue, then retry.",
|
|
1547
1483
|
},
|
|
1548
1484
|
zero_db_export_cursor_invalid: {
|
|
1549
1485
|
summary: "The local database export cursor is invalid or belongs to another export.",
|
|
@@ -1571,7 +1507,7 @@ export const ERROR_DOCS = {
|
|
|
1571
1507
|
},
|
|
1572
1508
|
zero_db_host_install_failed: {
|
|
1573
1509
|
summary: "The Zero runner cannot install the database host bridge.",
|
|
1574
|
-
fix: "Rebuild with a current runner
|
|
1510
|
+
fix: "Rebuild with a current runner. If the failure repeats, report it.",
|
|
1575
1511
|
},
|
|
1576
1512
|
zero_db_operation_invalid: {
|
|
1577
1513
|
summary: "The Zero database bridge received an invalid operation payload.",
|
|
@@ -1587,7 +1523,7 @@ export const ERROR_DOCS = {
|
|
|
1587
1523
|
},
|
|
1588
1524
|
zero_db_query_failed: {
|
|
1589
1525
|
summary: "A Zero database read failed.",
|
|
1590
|
-
fix: "Inspect the query, schema, and database logs
|
|
1526
|
+
fix: "Inspect the query, schema, and database logs. Fix the SQL issue, then retry.",
|
|
1591
1527
|
},
|
|
1592
1528
|
zero_db_row_invalid: {
|
|
1593
1529
|
summary: "A database row cannot be converted into a Zero response value.",
|
|
@@ -1603,7 +1539,7 @@ export const ERROR_DOCS = {
|
|
|
1603
1539
|
},
|
|
1604
1540
|
zero_db_transaction_active: {
|
|
1605
1541
|
summary: "The Zero runner tried to start a database transaction while one was already active.",
|
|
1606
|
-
fix: "Rebuild with the current Zero runner
|
|
1542
|
+
fix: "Rebuild with the current Zero runner. If the failure repeats, report it.",
|
|
1607
1543
|
},
|
|
1608
1544
|
zero_db_transaction_commit_failed: {
|
|
1609
1545
|
summary: "The Zero database transaction cannot be committed.",
|
|
@@ -1615,7 +1551,7 @@ export const ERROR_DOCS = {
|
|
|
1615
1551
|
},
|
|
1616
1552
|
zero_db_transaction_missing: {
|
|
1617
1553
|
summary: "The Zero runner tried to finish a database transaction that was not active.",
|
|
1618
|
-
fix: "Rebuild with the current Zero runner
|
|
1554
|
+
fix: "Rebuild with the current Zero runner. If the failure repeats, report it.",
|
|
1619
1555
|
},
|
|
1620
1556
|
zero_db_transaction_rollback_failed: {
|
|
1621
1557
|
summary: "The Zero database transaction cannot be rolled back cleanly.",
|
|
@@ -1635,11 +1571,11 @@ export const ERROR_DOCS = {
|
|
|
1635
1571
|
},
|
|
1636
1572
|
zero_db_url_invalid: {
|
|
1637
1573
|
summary: "The Zero database URL is malformed.",
|
|
1638
|
-
fix: "Set DATABASE_URL or the generated database variables to a valid MySQL connection URL.",
|
|
1574
|
+
fix: "Set `DATABASE_URL` or the generated database variables to a valid MySQL connection URL.",
|
|
1639
1575
|
},
|
|
1640
1576
|
zero_db_url_missing: {
|
|
1641
1577
|
summary: "No Zero database URL is configured.",
|
|
1642
|
-
fix: "Configure DATABASE_URL or finalize the version with database connection variables.",
|
|
1578
|
+
fix: "Configure `DATABASE_URL` or finalize the version with database connection variables.",
|
|
1643
1579
|
},
|
|
1644
1580
|
zero_dev_endpoint_failed: {
|
|
1645
1581
|
summary: "A local Zero dev endpoint failed while handling the request.",
|
|
@@ -1647,7 +1583,7 @@ export const ERROR_DOCS = {
|
|
|
1647
1583
|
},
|
|
1648
1584
|
zero_dump_query_invalid: {
|
|
1649
1585
|
summary: "The Zero database dump query parameters are invalid.",
|
|
1650
|
-
fix: "Use valid table
|
|
1586
|
+
fix: "Use valid `table`, `limit`, and `cursor` parameters.",
|
|
1651
1587
|
},
|
|
1652
1588
|
zero_endpoint_compile_failed: {
|
|
1653
1589
|
summary: "The runtime cannot compile the Zero endpoint bytecode.",
|
|
@@ -1667,11 +1603,11 @@ export const ERROR_DOCS = {
|
|
|
1667
1603
|
},
|
|
1668
1604
|
zero_endpoint_index_invalid: {
|
|
1669
1605
|
summary: "The Zero endpoint index does not contain valid endpoint mappings.",
|
|
1670
|
-
fix: "Rebuild
|
|
1606
|
+
fix: "Rebuild the Zero project and publish it again.",
|
|
1671
1607
|
},
|
|
1672
1608
|
zero_endpoint_index_malformed: {
|
|
1673
1609
|
summary: "The Zero endpoint index cannot be parsed.",
|
|
1674
|
-
fix: "Rebuild the generated endpoint index and
|
|
1610
|
+
fix: "Rebuild the generated endpoint index and publish again.",
|
|
1675
1611
|
},
|
|
1676
1612
|
zero_endpoint_index_path_invalid: {
|
|
1677
1613
|
summary: "The Zero endpoint index path is invalid.",
|
|
@@ -1679,7 +1615,7 @@ export const ERROR_DOCS = {
|
|
|
1679
1615
|
},
|
|
1680
1616
|
zero_endpoint_index_unreadable: {
|
|
1681
1617
|
summary: "The Zero endpoint index cannot be read.",
|
|
1682
|
-
fix: "Verify the version finalized with zero/endpoints-index.json present.",
|
|
1618
|
+
fix: "Verify the version finalized with `zero/endpoints-index.json` present.",
|
|
1683
1619
|
},
|
|
1684
1620
|
zero_endpoint_invalid: {
|
|
1685
1621
|
summary: "A Zero endpoint definition or its database metadata is invalid.",
|
|
@@ -1687,7 +1623,7 @@ export const ERROR_DOCS = {
|
|
|
1687
1623
|
},
|
|
1688
1624
|
zero_endpoint_mismatch: {
|
|
1689
1625
|
summary: "The requested Zero endpoint does not match the endpoint artifact.",
|
|
1690
|
-
fix: "Rebuild routes and artifacts together
|
|
1626
|
+
fix: "Rebuild routes and artifacts together, then publish the version again.",
|
|
1691
1627
|
},
|
|
1692
1628
|
zero_endpoint_not_found: {
|
|
1693
1629
|
summary: "No Zero endpoint artifact exists for this endpoint id.",
|
|
@@ -1701,13 +1637,9 @@ export const ERROR_DOCS = {
|
|
|
1701
1637
|
summary: "The Zero endpoints payload exceeds the supported endpoint count.",
|
|
1702
1638
|
fix: "Reduce the project to at most 128 Zero endpoints, then publish again.",
|
|
1703
1639
|
},
|
|
1704
|
-
zero_requires_dedicated_plan: {
|
|
1705
|
-
summary: "Zero endpoints require a plan with dedicated runtime isolation.",
|
|
1706
|
-
fix: "Upgrade the team to a plan that includes Zero and dedicated runtime, then publish again.",
|
|
1707
|
-
},
|
|
1708
1640
|
zero_envelope_encode_failed: {
|
|
1709
1641
|
summary: "The PHP bridge cannot encode the Zero runner request envelope.",
|
|
1710
|
-
fix: "Retry with valid request data.
|
|
1642
|
+
fix: "Retry with valid request data. If the issue persists, report it.",
|
|
1711
1643
|
},
|
|
1712
1644
|
zero_js_context_init_failed: {
|
|
1713
1645
|
summary: "The Zero runner cannot initialize a QuickJS context.",
|
|
@@ -1723,11 +1655,11 @@ export const ERROR_DOCS = {
|
|
|
1723
1655
|
},
|
|
1724
1656
|
zero_js_globals_failed: {
|
|
1725
1657
|
summary: "The Zero runner cannot install runtime globals for the endpoint.",
|
|
1726
|
-
fix: "Rebuild with a current runner
|
|
1658
|
+
fix: "Rebuild with a current runner. If the failure repeats, report it.",
|
|
1727
1659
|
},
|
|
1728
1660
|
zero_js_response_malformed: {
|
|
1729
1661
|
summary: "The Zero endpoint returned a malformed runner response.",
|
|
1730
|
-
fix: "Return a valid Response or supported Zero handler result.",
|
|
1662
|
+
fix: "Return a valid `Response` or supported Zero handler result.",
|
|
1731
1663
|
},
|
|
1732
1664
|
zero_js_runtime_init_failed: {
|
|
1733
1665
|
summary: "The Zero runner cannot initialize QuickJS.",
|
|
@@ -1735,7 +1667,7 @@ export const ERROR_DOCS = {
|
|
|
1735
1667
|
},
|
|
1736
1668
|
zero_log_query_invalid: {
|
|
1737
1669
|
summary: "The Zero log query parameters are invalid.",
|
|
1738
|
-
fix: "
|
|
1670
|
+
fix: "Pass `cursor` exactly as the previous page's `nextCursor`, keep `limit` between 1 and 100, and send `since` and `until` as ISO timestamps.",
|
|
1739
1671
|
},
|
|
1740
1672
|
zero_method_not_allowed: {
|
|
1741
1673
|
summary: "The request method is not allowed for this Zero endpoint.",
|
|
@@ -1747,7 +1679,7 @@ export const ERROR_DOCS = {
|
|
|
1747
1679
|
},
|
|
1748
1680
|
zero_query_name_missing: {
|
|
1749
1681
|
summary: "A Zero realtime query subscription did not include a query name.",
|
|
1750
|
-
fix: "Send a query.subscribe frame with a valid query name.",
|
|
1682
|
+
fix: "Send a `query.subscribe` frame with a valid query name.",
|
|
1751
1683
|
},
|
|
1752
1684
|
zero_realtime_forbidden: {
|
|
1753
1685
|
summary: "The Zero realtime event intake credential is invalid.",
|
|
@@ -1759,7 +1691,7 @@ export const ERROR_DOCS = {
|
|
|
1759
1691
|
},
|
|
1760
1692
|
zero_realtime_operation_unsupported: {
|
|
1761
1693
|
summary: "The Zero realtime websocket operation is unsupported.",
|
|
1762
|
-
fix: "Use a supported Zero realtime operation such as query.subscribe or query.unsubscribe
|
|
1694
|
+
fix: "Use a supported Zero realtime operation such as `query.subscribe` or `query.unsubscribe`.",
|
|
1763
1695
|
},
|
|
1764
1696
|
zero_realtime_query_invalid: {
|
|
1765
1697
|
summary: "The Zero realtime query subscription payload is invalid.",
|
|
@@ -1767,7 +1699,7 @@ export const ERROR_DOCS = {
|
|
|
1767
1699
|
},
|
|
1768
1700
|
zero_realtime_space_required: {
|
|
1769
1701
|
summary: "The Zero realtime request does not identify a space.",
|
|
1770
|
-
fix: "Use a
|
|
1702
|
+
fix: "Use a `/spaces/{spaceId}` realtime URL or include a valid `spaceId` query parameter.",
|
|
1771
1703
|
},
|
|
1772
1704
|
zero_realtime_unavailable: {
|
|
1773
1705
|
summary: "Zero realtime helpers are unavailable for this endpoint.",
|
|
@@ -1779,11 +1711,11 @@ export const ERROR_DOCS = {
|
|
|
1779
1711
|
},
|
|
1780
1712
|
zero_replay_failed: {
|
|
1781
1713
|
summary: "The hosted Zero runtime cannot fetch realtime replay events.",
|
|
1782
|
-
fix: "Retry shortly.
|
|
1714
|
+
fix: "Retry shortly. If the failure persists, check the central realtime and control-plane logs.",
|
|
1783
1715
|
},
|
|
1784
1716
|
zero_replay_query_invalid: {
|
|
1785
1717
|
summary: "The hosted Zero realtime replay query is invalid.",
|
|
1786
|
-
fix: "Use a valid afterEventId cursor and numeric limit.",
|
|
1718
|
+
fix: "Use a valid `afterEventId` cursor and numeric limit.",
|
|
1787
1719
|
},
|
|
1788
1720
|
zero_replay_unavailable: {
|
|
1789
1721
|
summary: "Realtime replay is not configured for this Zero version.",
|
|
@@ -1791,7 +1723,7 @@ export const ERROR_DOCS = {
|
|
|
1791
1723
|
},
|
|
1792
1724
|
zero_request_body_too_large: {
|
|
1793
1725
|
summary: "The Zero request body exceeds the runtime size limit.",
|
|
1794
|
-
fix: "Send a smaller request body or move large payloads to blob
|
|
1726
|
+
fix: "Send a smaller request body or move large payloads to blob or object storage.",
|
|
1795
1727
|
},
|
|
1796
1728
|
zero_response_header_forbidden: {
|
|
1797
1729
|
summary: "A Zero endpoint attempted to set a platform-managed response header.",
|
|
@@ -1827,7 +1759,7 @@ export const ERROR_DOCS = {
|
|
|
1827
1759
|
},
|
|
1828
1760
|
zero_runner_envelope_invalid: {
|
|
1829
1761
|
summary: "The Zero runner request envelope is malformed.",
|
|
1830
|
-
fix: "Use the generated runtime bridge
|
|
1762
|
+
fix: "Use the generated runtime bridge. If generated files are stale, publish again.",
|
|
1831
1763
|
},
|
|
1832
1764
|
zero_runner_failed: {
|
|
1833
1765
|
summary: "The Zero runner process exited without a valid response.",
|
|
@@ -1839,15 +1771,15 @@ export const ERROR_DOCS = {
|
|
|
1839
1771
|
},
|
|
1840
1772
|
zero_runner_invalid_response: {
|
|
1841
1773
|
summary: "The Zero runner output was not valid JSON.",
|
|
1842
|
-
fix: "Inspect runner stderr
|
|
1774
|
+
fix: "Inspect runner stderr. If the failure persists, rebuild the runner.",
|
|
1843
1775
|
},
|
|
1844
1776
|
zero_runner_invalid_status: {
|
|
1845
1777
|
summary: "The Zero runner returned an invalid HTTP status.",
|
|
1846
|
-
fix: "
|
|
1778
|
+
fix: "Return a status between 100 and 599 from endpoint handlers.",
|
|
1847
1779
|
},
|
|
1848
1780
|
zero_runner_protocol_unsupported: {
|
|
1849
1781
|
summary: "The Zero runner received an unsupported invoke protocol.",
|
|
1850
|
-
fix: "Rebuild and
|
|
1782
|
+
fix: "Rebuild and publish again so the PHP bridge and Rust runner versions match.",
|
|
1851
1783
|
},
|
|
1852
1784
|
zero_runner_response_encode_failed: {
|
|
1853
1785
|
summary: "The Zero runner cannot encode its response.",
|
|
@@ -1855,7 +1787,7 @@ export const ERROR_DOCS = {
|
|
|
1855
1787
|
},
|
|
1856
1788
|
zero_runner_stdin_invalid: {
|
|
1857
1789
|
summary: "The Zero runner cannot read its request envelope.",
|
|
1858
|
-
fix: "Retry.
|
|
1790
|
+
fix: "Retry. If the runtime bridge failure persists, report it.",
|
|
1859
1791
|
},
|
|
1860
1792
|
zero_runner_stdin_too_large: {
|
|
1861
1793
|
summary: "The Zero runner request envelope is too large.",
|
|
@@ -1877,14 +1809,6 @@ export const ERROR_DOCS = {
|
|
|
1877
1809
|
summary: "The Zero run-handler payload exceeds the supported handler count.",
|
|
1878
1810
|
fix: "Reduce the project to at most 128 Zero run handlers, then publish again.",
|
|
1879
1811
|
},
|
|
1880
|
-
zero_shopify_unavailable: {
|
|
1881
|
-
summary: "The local Zero Shopify service is not configured.",
|
|
1882
|
-
fix: "Configure a Shopify handler in the project, then restart `sf dev` before calling the Shopify service.",
|
|
1883
|
-
},
|
|
1884
|
-
wp_cloud_anonymous_pool_required: {
|
|
1885
|
-
summary: "This operation requires an anonymous pool site.",
|
|
1886
|
-
fix: "Target a pool-class site.",
|
|
1887
|
-
},
|
|
1888
1812
|
wp_cloud_assignment_kind_mismatch: {
|
|
1889
1813
|
summary: "The domain assignment's kind does not match the site.",
|
|
1890
1814
|
fix: "Verify the assignment against the site's hosting kind.",
|