Charles VI: Minority, Madness, and Civil War (1380–1422) · HIGH MIDDLE AGES
After the revolts and the restoration of authority, the late 1380s challenged the government on two fronts: holding the peripheries (Brittany) and asserting policy in the north-east (Low Countries/Empire). These episodes prepared the reassertion of royal control in 1388.
Constable Olivier de Clisson was a servant of the state as much as a great Breton lord. His power and his loyalty to the king alarmed the Duke of Brittany, who saw it as interference. In 1387, Clisson was arrested at Vannes and forced to pay a costly ransom for his release. The affair revealed tensions:
To the east, the Duke of Guelders opposed Burgundian ambitions and sought English support. An expedition was decided: in late August 1388, the royal host set out. The campaign was hampered by geography and the season, and ended with a negotiated submission (October 1388): the objective was above all political — to show that the king could mount a major operation.
On his return, the scene was highly symbolic: Charles VI held a great assembly at Reims, the city of his coronation. He was approaching the age at which he could govern without tutelage. A few weeks later, he set aside part of the princely influence and recalled advisers from the administration of Charles V.
[31mℹ Error: [GET] “/content/content.json”: 404 Page not found: /content/content.json[39m
⁃ at async $fetch2 [33m(node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:332:15)[39m ⁃ at async Object.handler [33m(server/api/periods/[pid]/chapters.get.ts:32:31)[39m
[2m27[22m [2m┃[22m [32m"public, max-age=300, s-maxage=3600, stale-while-revalidate=86400"[0m[34m,[0m [2m28[22m [2m┃[22m ); [2m29[22m [2m┃[22m [31mconst[0m pid [34m=[0m [35mgetRouterParam[0m(event[34m,[0m [32m"pid"[0m) [34m||[0m [32m""[0m; [2m30[22m [2m┃[22m [31mconst[0m q [34m=[0m [35mgetQuery[0m(event); [2m31[22m [2m┃[22m [31mconst[0m lang [34m=[0m [35mnormalizeLang[0m((q [31mas[0m any)[34m?.[0mlang); [41m❯ 32 ┃ const { PERIOD_CAROUSELS } = await getContentData(event);[49m [2m33[22m [2m┃[22m [31mconst[0m options [34m=[0m [33mPERIOD_CAROUSELS[0m[pid] [34m||[0m []; [2m34[22m [2m┃[22m [31mconst[0m ready [34m=[0m options[34m.[0mlength [34m>[0m [33m0[0m [34m||[0m [33mPERIOD_FULL_UNLOCK[0m[34m.[0m[35mhas[0m(pid); [2m35[22m [2m┃[22m [31mif[0m ([34m![0mready) [2m36[22m [2m┃[22m [31mthrow[0m [35mcreateError[0m({ statusCode[34m:[0m [33m404[0m[34m,[0m statusMessage[34m:[0m [32m"Coming soon"[0m }); [2m37[22m [2m┃[22m [31mconst[0m base [34m=[0m [35mlocalizePeriodMeta[0m([35mgetPeriodMeta[0m(pid)[34m,[0m lang);
⁃ [33m(async file://node_modules/h3/dist/index.mjs:2011:19)[39m ⁃ at async Object.callAsync [33m(node_modules/unctx/dist/index.mjs:72:16)[39m ⁃ at async toNodeHandle [33m(node_modules/h3/dist/index.mjs:2303:7)[39m ⁃ at async b [33m(node_modules/node-mock-http/dist/index.mjs:1:6876)[39m ⁃ at async C [33m(node_modules/node-mock-http/dist/index.mjs:1:7159)[39m ⁃ at async $fetchRaw2 [33m(node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:274:26)[39m ⁃ at async $fetch2 [33m(node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:332:15)[39m ⁃ at async setup [33m(pages/p/[pid]/index.vue:49:18)[39m
[31m[CAUSE][39m [36mFetchError[39m [33m{[39m [34mstack[39m: [32m’[GET] “/content/content.json”: 404 Page not found: /content/content.json\n’ + ‘at async $fetch2 (./node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:332:15)\n’ + ‘at async Object.handler (./server/api/periods/[pid]/chapters.get.ts:32:31)\n’ + ‘at async file://./node_modules/h3/dist/index.mjs:2011:19)\n’ + ‘at async Object.callAsync (./node_modules/unctx/dist/index.mjs:72:16)\n’ + ‘at async toNodeHandle (./node_modules/h3/dist/index.mjs:2303:7)\n’ + ‘at async b (./node_modules/node-mock-http/dist/index.mjs:1:6876)\n’ + ‘at async C (./node_modules/node-mock-http/dist/index.mjs:1:7159)\n’ + ‘at async $fetchRaw2 (./node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:274:26)\n’ + ‘at async $fetch2 (/Users/long2x/projects/france’… 161 more characters[39m, [34mmessage[39m: [32m’[GET] “/content/content.json”: 404 Page not found: /content/content.json’[39m, [34mname[39m: [32m’FetchError’[39m, [34mrequest[39m: [36m[Getter][39m [34moptions[39m: [36m[Getter][39m [34mresponse[39m: [36m[Getter][39m [34mdata[39m: [36m[Getter][39m [34mstatus[39m: [36m[Getter][39m [34mstatusCode[39m: [36m[Getter][39m [34mstatusText[39m: [36m[Getter][39m [34mstatusMessage[39m: [36m[Getter][39m [33m}[39m
runtime-core.esm-bun….js?v=31225b66:7189 <Suspense> is an experimental feature and its API will likely change. devtools.client.js?v=31225b66:52 ✨ Nuxt DevTools Press Shift + Option + D to open DevTools p5-le-moyen-age-classique:1 Access to XMLHttpRequest at ‘https://cloudflareinsights.com/cdn-cgi/rum’ from origin ‘http://localhost:3003’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: The ‘Access-Control-Allow-Origin’ header has a value ‘http://localhost’ that is not equal to the supplied origin. beacon.min.js:1 POST https://cloudflareinsights.com/cdn-cgi/rum net::ERR_FAILED runtime-core.esm-bun…er.js?v=31225b66:50 [Vue warn]: Hydration node mismatch:
at <Default ref=Ref< undefined > > at <AsyncComponentWrapper ref=Ref< undefined > > at <LayoutLoader key=“default” layoutProps= {ref: RefImpl} name=“default” > at <NuxtLayoutProvider layoutProps= {ref: RefImpl} key=“default” name=“default” … > at <NuxtLayout > at <App key=4 > at <NuxtRoot> runtime-core.esm-bun….js?v=31225b66:1873 Hydration completed but contains mismatches. p5-le-moyen-age-classique:1 Access to resource at ‘https://cloudflareinsights.com/cdn-cgi/rum’ from origin ‘http://localhost:3003’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: The ‘Access-Control-Allow-Origin’ header has a value ‘http://localhost’ that is not equal to the supplied origin. beacon.min.js:1 POST https://cloudflareinsights.com/cdn-cgi/rum net::ERR_FAILED