Errors & warningsReference
When you upload a workbook, Sheetward checks it and reports two kinds of message. Errors block creation until you fix them; warnings are advisory — the app is still built, but something you may have intended didn't come through. This list grows as new checks are added.
Errors — creation is blocked until these are fixed:
| Message | What it means — and how to fix it |
|---|---|
| No form sheet | The workbook has no Form_ sheet (and nothing was auto-detected as data). Name a sheet Form_<Name>, e.g. Form_Invoice. |
| Blank or fieldless form | A Form_ sheet is empty, or has content but no readable fields. Add label/value rows, or a HEADER / LINE ITEMS layout. |
| Value with no field name | A form has a value with no field name in the cell to its left (its label was left blank) — Sheetward won't name a field after your data. Add the field name, or remove the value. |
| Merged cells | Any sheet except Info_ has merged cells. Every sheet is read positionally — a form as field name / value pairs, a list or rules sheet as column headings above rows — and merging makes that unreadable. Unmerge them (Home → Merge & Center) and give each entry its own cell. Two exceptions: Info_ sheets are never checked (they're prose), and a title merged across the top row of a Form_ sheet, starting at A1, is fine — provided row 2 beneath it is clear, meaning blank or holding only a section marker such as HEADER. A merged A1 sitting directly on the first field is an error like any other. |
| Repeated or lower-case section title | A form may group its fields into several sections, but each title must be in CAPITALS and each must be different. This also fires when a form has more than one LINE ITEMS section — of those, keep one. |
| Line items before the header | A form's line-items table sits above its header fields — the header must come first, with the LINE ITEMS table below it. This often means the sheet accidentally defines the same form twice (once as a column grid, once as label : value pairs); keep a single definition. |
| Duplicate role sheet | The workbook has more than one Rules_/Validation_, Formula_/Logic_, Translation_, or Info_ sheet. Each role must be a single sheet — merge them. |
| More than one key | A form marks more than one field as a key. Keep one key; if two columns together identify a record, mark the second as a subkey. |
| More than one sub-key | A form marks more than one field as a subkey. A form can have only one. |
| Sub-key without a key | A form has a subkey but no key. Add a key rule on the primary field. |
| Duplicate key (auto field) | A section has two key fields once the auto-numbered field is counted — an auto/autogen field is implicitly the key. Keep one: put the key and auto on the same field, or drop the extra rule. |
| Repeated field name | A form section repeats a field name. The field would appear twice on the form but be a single field — filling either box fills the other, and one value is stored. Remove the duplicate row from the workbook, or rename one of them. (Currency and unit-of-measure pickers may repeat.) |
| Couldn't build the app | An unexpected problem building the app from the workbook — the message gives the detail. Usually a malformed rule or structure. |
Warnings — the app is still created. They come in two lists: Worth checking (built from a judgement call — review it) and Left out of the app (not used at all):
| Message | What it means — and how to fix it |
|---|---|
| Empty master-data list | A List_ sheet produced no values, so its dropdown will be empty. |
| Rules not applied | A Rules_ sheet had rows but none could be read, so no validation was added. |
| Formulas not applied | A Formula_ (or Logic_) sheet had rows but none could be read, so no computed fields were added. |
| Unknown data type | A value in the Data type column wasn't recognized — Sheetward used the inferred type instead. |
| Two labels, one internal name | Two different labels reduced to the same internal field name ("Amount (EUR)" and "Amount EUR" both give amount_eur). Both fields work — the second is stored under a numbered name. Only matters if you reference it in a Rules_ or Formula_ sheet. |
| Unrecognized rule type | A Rule Type isn't one of the supported types — that rule was skipped. |
| Unreadable rule value | A rule's Value couldn't be read for its type (e.g. an invalid pattern) — that rule was skipped. |
| Malformed formula | A formula has unbalanced parentheses or an invalid character — that formula was skipped. |
| Relation not resolved | A relation field's target couldn't be matched (missing form/field, or the target isn't a key/sub-key) — the field was left as plain text. |
| Ignored Info hint | An Info_ country/currency/locale value was malformed (e.g. a name instead of a code) — it was ignored. |
| Looks like locale formatting | A text field's sample value looks like a date or number stored as text, which can be ambiguous across regions. Store real dates/numbers, or use ISO format (YYYY-MM-DD). |
| Stray sheet ignored | A sheet whose name matches no known prefix was ignored. |
| Dashboard issue | A Report_/Analytics_ sheet couldn't be fully read — that widget or dashboard was skipped. |
All of these are shown in the upload step before you create the app. Fix every error and re-upload. Warnings are safe to proceed with — but read the Worth checking list first: those parts are in your app and may not match what you wrote.