Errors & warningsReference
Upload a workbook and Sheetward checks it before building anything, then 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 — these stop the upload; the app isn't created until they're fixed:
| Message | What it means — and how to fix it |
|---|---|
| No form sheet | The workbook has no Form_ sheet, and nothing could be auto-detected as data. Name a sheet Form_<Name> — for example Form_Invoice. |
| Blank or fieldless form | A Form_ sheet is empty, or has content Sheetward can't read as fields. Add label/value rows, or a HEADER / LINE ITEMS layout. |
| Value with no field name | A form has a value with nothing in the cell to its left — the field's label was left blank — and Sheetward won't name a field after your data. Add the field name, or remove the value. |
| Merged cells | A sheet other than Info_ has merged cells. Sheetward reads every sheet by position — 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. A title merged across the top row of a Form_ sheet, starting at A1, is also fine, provided row 2 beneath it is blank or holds 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 sections, but every section title must be in CAPITALS and no two may repeat. With several line grids, the same rules apply to the grid banners — rules, formulas and exports find a grid by its title. |
| Line items before the header | The line-items table sits above the 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. |
| Line-grid naming | A form with several line tables must name each grid with an ALL-CAPS banner ending in LINES or LINE ITEMS ("PART LINES"). This message fires when a banner promises a grid but label/value rows follow (line_title_not_grid), a second grid has no banner (line_grid_unbannered), or a declared grid has no header section above it (line_grid_without_header). |
| Duplicate role sheet | The workbook has more than one Rules_/Validation_, Formula_/Logic_, Translation_ or Info_ sheet. Each of those roles must live on a single sheet — merge them into one. |
| 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 to the primary field. |
| Duplicate key (auto field) | A section ends up with 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 rules 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 yet 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 | Something unexpected went wrong building the app from the workbook — the message gives the detail. It's usually a malformed rule or structure. |
Warnings — the app is still created. They arrive in two lists: Worth checking (Sheetward made a judgement call — review it) and Left out of the app (something wasn't used at all):
| Message | What it means — and how to fix it |
|---|---|
| Empty master-data list | A List_ sheet produced no values, so the dropdown it backs 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 calculated fields were added. |
| Unknown data type | A value in the Data type column wasn't recognized, so Sheetward used the type it inferred from your sample values instead. |
| Two labels, one internal name | Two different labels boil down to the same internal field name ("Amount (EUR)" and "Amount EUR" both become amount_eur). Both fields work — the second is stored under a numbered name. This only matters if you refer to it in a Rules_ or Formula_ sheet. |
| Unrecognized rule type | A Rule Type isn't one of the supported types, so that rule was skipped. |
| Unreadable rule value | A rule's Value couldn't be read for its type (for example, an invalid pattern), so that rule was skipped. |
| Malformed formula | A formula has unbalanced parentheses or an invalid character, so that formula was skipped. |
| Excel formula in a cell | A cell contains an Excel formula (like =B2*C2). The workbook is read as values, so the cell arrived as the number Excel last saved and will not recalculate in the app. Move the calculation to a Formula_ sheet or a calc rule. |
| Relation not resolved | A relation field's target couldn't be matched — the form or field is missing, or the target isn't a key or sub-key — so the field was left as plain text. |
| Ignored Info hint | An Info_ country, currency or locale value was malformed (a name where a code belongs, say), so it was ignored. |
| Looks like locale formatting | A text field's sample value looks like a date or number stored as text, which reads differently across regions. Store real dates and 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, so that widget or dashboard was skipped. |
Everything here appears in the upload step, before the app is created. 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.