Contents
NipponDailyHow it is built

Chapter 8

Error and fallback states

A live catalogue of every degraded, empty or failure UI the site can render, so their look can be reviewed without triggering a real outage. Each block below is the actual component with representative mock data.

02

Entry with an unsettled origin

components/WordEntryView.vue (hedged sources, morphemes: [])

Trigger:An entry whose source hedges or gives no clean split: no morpheme breakdown (any other split would be a guess) and a “Not settled” callout, which appears whenever a quoted Wiktionary line contains a hedge such as “probably” or “unknown”. The content test requires such a line whenever an entry is tagged “Origin unclear”. The entry below is a synthetic placeholder, not a real etymology.

First opened Tuesday, October 13, 2026

例

れい

Pitch accent: We don't have the data for this section. No accent list gives this spelling and reading, or the two we check against disagree.

example

JLPT N4noun (common) (futsuumeishi)漢語 · Sino-JapaneseOrigin unclear

A placeholder entry used to preview this layout.

Taken apart

No breakdown is shown for this word: Wiktionary's text for it doesn't give a split that spells the word and joins to its reading, and any other split would be a guess.

Written with 例

In a sentence

We don't have the data for this section. The pinned Tatoeba export has no sentence with a translation that uses this word and passes our filter.

What Wiktionary says

Quoted line by line from Wiktionary's Etymology section for this reading, taken from one dated dump so it can't change underneath us. Nothing below is paraphrased.

Not settled

Wiktionary itself hedges on part of this word's origin — those lines are marked below.

  • Hedged“Placeholder — this line is hedged (probably) so the callout shows. A real entry quotes Wiktionary here, verbatim.”

Source: Wiktionary: 例 (dump of 2026-09-02), available under CC BY-SA 4.0. Reading, meaning and part of speech from JMdict, and kanji readings from KANJIDIC2 (EDRDG).

What the labels mean

漢語 Sino-Japanese
Words built from Chinese-derived morphemes — borrowed from Chinese or coined in Japan out of Chinese parts — read with on'yomi.
Origin unclear
Scholars disagree, or nobody knows.
03

Loading skeletons

pages/index.vue · pages/words/index.vue · pages/words/[date].vue · pages/parts/index.vue · pages/parts/[text].vue · pages/kanji/index.vue · pages/kanji/[char].vue · pages/explore.vue · pages/patterns.vue

Trigger:Shown while the page's data is still being fetched in the browser: when a reader moves to another day, month, part, kanji or filter, or retries after a failure. A first visit is rendered on the server with its data already in the HTML, so it normally shows no skeleton. The page never renders an empty frame.

Word page

Calendar

04

Calendar day states

pages/words/index.vue

Trigger:A day is “open” once midnight in Japan has passed (it shows its word and links to it), “today” when it is the current day, and “upcoming” before then — an upcoming day reveals nothing, and the API refuses to serve it. With calendar filters set, an open day whose word matches is tinted and one that doesn't is “faded” but still a link; an upcoming day is neither. A month with no match says so and points to the nearest months that have one. The words below are placeholders.

11

例

れい

faded

12

例

れい

open

13

例

れい

today

14

upcoming

05

Vocabulary-layer badges

components/WordEntryView.vue (entry.stratum)

Trigger:Every entry names the layer of the vocabulary it belongs to; the calendar colors its dot to match.

和語 · Native Japanese漢語 · Sino-Japanese外来語 · Loanword混種語 · Hybrid
06

404 — page not found

pages/[...slug].vue

Trigger:Any unmatched route. Full-page layout with the shared header/footer and a single 'Return to Home' action. The server answers a real 404 and the page is noindex.

404

Page Not Found

The page or resource you are looking for does not exist or has been moved.

Return to Home
07

API error responses

server/api/daily-word.get.ts · word-calendar · part · kanji-detail · explore · related

Trigger:Not a rendered UI — the JSON the data endpoints return on failure. The pages map these onto the fetch-failure state above.

400 Bad Request

?date= is not a real calendar date, or is a day that hasn't arrived yet in Japan (an upcoming word is never served early). On /api/word-calendar, ?month= is not a real YYYY-MM; /api/explore and /api/word-calendar reject an unknown level, layer, process, part of speech, frequency or accent pattern, or an over-long search or part, and /api/part a missing or over-long text.

{
  "statusCode": 400,
  "statusMessage": "Bad Request",
  "data": {
    "error": "Invalid query parameters",
    "details": [
      {
        "path": "date",
        "message": "Date cannot be in the future"
      }
    ]
  }
}

404 Not Found

A valid past date (or month) the catalogue doesn't cover, or a part or kanji no open word shows. With no ?date=, /api/daily-word serves today's word (starting a new lap once the words run out), and is a 404 only before the first word.

{
  "statusCode": 404,
  "statusMessage": "Not Found",
  "data": {
    "error": "There is no word for 2018-10-07."
  }
}

© 2025 - 2026 NipponDaily. Released under the Apache-2.0 License.

Origins quoted from Wiktionary (CC BY-SA 4.0) via Kaikki.org; meanings & kanji from JMdict, KANJIDIC2 & KRADFILE (EDRDG, CC BY-SA 4.0) — how we check it