Errors
Every diagnostic the vuka toolchain reports has a stable code: the compiler, vuka vet, the editor and the libraries' checks at boot. E is an error and W a warning; the first two digits name the area. Each page says what is wrong, why, and shows the fix. vuka explain E0201 prints the same page in the terminal.
The compiler
| Code | |
|---|---|
| E0001 | Internal compiler error |
| E0002 | Type error |
| E0003 | Syntax error |
| E0004 | The Vuka runtime is too old |
| E0005 | A dependency doesn't compile |
| E0006 | A .templ file doesn't compile |
Syntax, JSX and the language
| Code | |
|---|---|
| E0101 | JSX syntax error |
| E0102 | JSX needs a target |
| E0103 | Two JSX targets |
| E0104 | The JSX target can't be used |
| E0105 | Can't lower a JSX element |
| E0106 | A component's attributes don't fit |
| E0107 | An event handler doesn't fit |
| E0108 | No such ref or attribute value |
| E0109 | A field reference names no field |
| E0110 | Misplaced ? |
| E0111 | Malformed match |
| E0112 | A pattern doesn't fit its subject |
| E0113 | match isn't exhaustive |
| E0114 | Unreachable case |
| E0115 | Malformed enum |
| E0116 | Malformed static |
| E0117 | Can't infer a static's type |
| E0118 | Static initialization cycle |
| E0119 | A static or field can't be used this way |
| E0120 | Conflicting overloads |
| E0121 | Ambiguous or unresolvable overload |
| E0122 | Can't infer a type argument |
| E0124 | Code that can't run in the browser |
| E0125 | ui.State used with the wrong type |
| E0126 | Bad vuka.File |
| E0127 | ui.HTML isn't given one value per label |
| E0128 | A value doesn't fit its hole |
| E0129 | Attributes and a hand-written schema method |
| E0130 | A hook attribute that is no hook |
| E0131 | A function an around decorator can't wrap |
| E0132 | A value isn't written as its label |
| E0141 | A template has two scripts or two scoped stylesheets |
| E0142 | A template file has no package clause, or another package's |
| E0143 | An unknown element or template |
| E0144 | A tag leaves out a parameter |
| E0146 | A template file's Go declares no struct |
| E0147 | A template file declares more than one struct |
| E0148 | A template file has Go and no markup |
| E0149 | A state written where nothing sends it to the page |
| E0150 | A write the browser can't run |
| E0151 | Markup outside a .vuka.html file |
| E0152 | A template file declares no struct above its markup |
| E0153 | A second template in a template file |
| E0154 | An island page that breaks its rules |
| E0155 | Tracked state used in a .go file |
| E0156 | A Go script with no end tag |
| E0157 | A Go script that is not the file's first element |
| E0158 | A tag leaves out a required field |
| W0101 | A bare name is a field and a name of the package |
| W0102 | A live list's items have no key |
| W0103 | A stateful component in a loop has no key |
| W0105 | A hand-written use of uigen |
| W0106 | A hand-written ui.HTML or ui.IslandPage |
| W0107 | A .vuka.html file in the Go-header form |
Decorators and attributes
| Code | |
|---|---|
| E0201 | Malformed attribute |
| E0202 | Attribute in the wrong place |
| E0203 | An attribute must start its own line |
| E0204 | Attribute without a declaration |
| E0205 | Bad parameter attribute |
| E0206 | Bad field attribute |
| E0207 | Attribute on the wrong kind of declaration |
| E0208 | Malformed decorator declaration |
| E0209 | A decorator composes itself |
| E0210 | A typed decorator in a composition |
| E0211 | Type decorator on a generic type |
| E0212 | Decorated init |
| E0213 | A declarer can't take this declaration |
| E0214 | Bad @export |
Islands and live pages
| Code | |
|---|---|
| E0301 | Malformed island import |
| E0302 | Island imported twice |
| E0303 | Can't read an island component |
| E0304 | Can't read an island's props |
| E0305 | The JSX target can't import islands |
| E0306 | Malformed <ui.Island> |
| E0307 | Not an island component |
| E0308 | Bad hydration directive |
| E0309 | An island's attributes don't fit |
| E0310 | Island component not found |
| E0311 | Island component is ambiguous |
| E0312 | Two islands share a name |
| E0320 | Bad @ui.Island arguments |
| E0321 | Bad ui.Layout |
| E0322 | Bad bind: tag |
| E0323 | Bad defer: tag |
| E0324 | A deferred field has no loader |
| E0326 | Two handles share a name |
| E0328 | Bad validate: tag |
| E0329 | Bad ui.Live embedding |
| E0330 | An island page under @web.Live isn't live |
| E0331 | A page backed by a component isn't a GET |
| E0332 | @web.Get on a type without @ui.Island |
| E0334 | Two Update methods take URL parameters |
| E0335 | A LiveSchema field that isn't the page's |
| E0336 | A live page hook that doesn't fit |
| E0337 | A hook found by its name |
| E0338 | A hook declared by the constructor |
| E0340 | A path parameter the page doesn't have |
| W0301 | A live page routed as a stateless one |
| W0302 | A live page configured by struct tags |
| W0306 | A hand-written LiveSchema |
| W0307 | Two components keeping one URL parameter |
Routes and the web app
| Code | |
|---|---|
| E0401 | A route is declared twice |
| E0402 | A frontend serves a route a handler serves |
| E0403 | A handler isn't a function |
| E0404 | A route's attribute needs what the app doesn't have |
| E0405 | A handler parameter can't be bound |
| E0406 | A handler returns what the app can't write |
| E0407 | No provider for a dependency |
| E0408 | A type is provided twice |
| E0409 | A dependency cycle |
| E0410 | A constructor has the wrong shape |
| E0411 | A cron is wrong |
| E0412 | A cron is declared twice |
| E0413 | Bad TrustedProxies entry |
| E0414 | Implementation[T] finds no one type |
| E0415 | An environment variable is missing or invalid |
| E0416 | A .env file doesn't parse |
| E0417 | A view doesn't fit its template |
| E0418 | A service or controller that isn't a struct |
| E0419 | A dependency field the URL binds too |
| E0420 | A removed way to declare a dependency |
| E0421 | Two context processors give one variable |
| E0422 | A variable not every main gives |
| E0423 | A context processor variable read without a context |
| E0424 | An undefined name near a context processor variable |
| E0425 | A list entry that is no context processor |
| E0426 | Personal values sent to the browser |
| E0427 | A web.Var read the app doesn't give |
| E0428 | Context processors that need each other |
| W0401 | A name shadowing a context processor variable |
| W0402 | A direct read where a processor variable would do |
| W0403 | A control hidden by a permission its event doesn't check |
Data and the ORM
| Code | |
|---|---|
| E0501 | A Schema field isn't the model's |
| E0502 | A nil Schema attribute |
| E0503 | A Schema field behind a pointer |
Frontend and toolchain
| Code | |
|---|---|
| E0601 | The frontend isn't built |
| E0602 | Node.js or the package manager isn't installed |
| E0603 | A frontend dependency is missing |
| E0604 | An asset declaration can't be read |
| E0605 | An asset file isn't there |
| E0606 | Two pages share an asset scope |
| E0607 | vite.config doesn't use the vuka plugin |
| E0608 | TypeScript 7 can't build Vue islands |
| E0609 | The islands have no frontend build to go into |
| E0610 | npm is older than 11 |
Folder routes
| Code | |
|---|---|
| E0701 | Two pages on one path |
| E0702 | Two routes match the same paths |
| E0703 | Something is below a catch-all folder |
| E0704 | A bracketed name names no path parameter |
| E0705 | A path parameter's type can't be in a URL |
| E0706 | A name vuka declares for a page is taken |
| E0707 | A folder route and a hand-written route share a path |
| E0708 | A folder's layout or Guard is malformed |
| E0709 | A method handler doesn't fit |
| E0710 | A folder's Middleware is malformed |
| E0711 | Nothing binds a path parameter |
| E0712 | The fields binding a path parameter disagree on its type |
| E0713 | A parameter is both a file and a folder |
| E0714 | A Params struct makes no parameter folder |
| E0715 | A Layout type wraps no folder |
| E0716 | A Go file the folder's package can't hold |
| E0717 | Two Go files declare one method func |
| E0718 | A file is in the way of pages/route.go |
| E0719 | A page's struct is declared nowhere |
| E0720 | A page declared outside pages/ |
| E0721 | A page whose markup is written in Go |
| E0722 | Two routes on one URL through a route group |
| E0723 | A name in parentheses that names no route group |
| E0724 | The home page outside the root layouts |
| W0701 | No main package serves the folder routes |
| W0702 | A hand-written folder-route option |
| W0703 | A layout reading the request |