A war foretold: How the CIA and MI6 uncovered Putin's plans for Ukraine, and why no one believed them.

A war foretold: How the CIA and MI6 uncovered Putin's plans for Ukraine, and why no one believed them.

This text defines a custom font called “Guardian Headline Full” for use on a website. It includes different styles and weights, such as light, regular, medium, and semibold, each in both normal and italic versions. The font files are provided in multiple formats (WOFF2, WOFF, and TTF) and are hosted online.@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(“truetype”);
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”);
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: Guardian Titlepiece;
src: url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),
url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff) format(“woff”),
url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.ttf) format(“truetype”);
font-weight: 300;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.ttf) format(“truetype”);
font-weight: 300;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf) format(“truetype”);
font-weight: 400;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format(“truetype”);
font-weight: 400;
font-style: italic;
}@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format(“truetype”);
font-weight: 400;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf) format(“truetype”);
font-weight: 500;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf) format(“truetype”);
font-weight: 500;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf) format(“truetype”);
font-weight: 600;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format(“truetype”);
font-weight: 600;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(“truetype”);
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”);
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}@font-face {
font-family: ‘Guardian Headline’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(‘truetype’);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Titlepiece’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format(‘truetype’);
font-weight: 700;
font-style: normal;
}

#article-body>div .content–interactive-grid,
.content–interactive>div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-column-gap: 0px;
grid-template-columns: 100%;
grid-template-areas:
“media”
“title”
“headline”
“standfirst”
“lines”
“meta”
“body”;
}

@media (min-width: 30em) {
#article-body>div .content–interactive-grid figure.element–immersive figcaption,
.content–interactive>div .content–interactive-grid figure.element–immersive figcaption,
#comment-body .content–interactive-grid figure.element–immersive figcaption,
[data-gu-name=body] .content–interactive-grid figure.element–immersive figcaption,
#feature-body .content–interactive-grid figure.element–immersive figcaption {
padding: 0 20px;
max-width: 620px;
}
}

@media (min-width: 46.25em) {
#article-body>div .content–interactive-grid,
.content–interactive>div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 100%;
grid-column-gap: 10px;
grid-template-areas:
“title”
“headline”
“standfirst”
“media”
“lines”
“meta”
“body”;
}
#article-body>div .content–interactive-grid #maincontent,
.content–interactive>div .content–interactive-grid #maincontent,
#comment-body .content–interactive-grid #maincontent,
[data-gu-name=body] .content–interactive-grid #maincontent,
#feature-body .content–interactive-grid #maincontent {
padding-right: 80px;
}
}

@media (min-width: 61.25em) {
#article-body>div .content–interactive-grid,
.content–interactive>div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 620px 300px;
grid-template-areas:
“title right-column”
“headline right-column”
“standfirst right-column”
“media right-column”
“lines right-column”
“meta right-column”
“body right-column”
“. right-column”;
}
#article-body>div .content–interactive-grid #maincontent,
.content–interactive>div .content–interactive-grid #maincontent,
#comment-body .content–interactive-grid #maincontent,
[data-gu-name=body] .content–interactive-grid #maincontent,
#feature-body .content–interactive-grid #maincontent {
padding-right: unset;
}
}

@media (min-width: 71.25em) {
#article-body>div .content–interactive-grid,
.content–interactive>div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 140px 1px 620px 300px;
grid-template-areas:
“title border headline right-column”
“. border standfirst right-column”
“. border media right-column”
“. border body right-column”
“. border . right-column”;
}
#article-body>div .content–interactive-grid .content__standfirst,
.content–interactive>div .content–interactive-grid .content__standfirst,
#comment-body .content–interactive-grid .content__standfirst,
[data-gu-name=body] .content–interactive-grid .content__standfirst,
#feature-body .content–interactive-grid .content__standfirst {
padding-bottom: 0;
}
#article-body>div .content–interactive-grid figure.element–immersive figcaption,
.content–interactive>div .content–interactive-grid figure.element–immersive figcaption,
#comment-body .content–interactive-grid figure.element–immersive figcaption,
[data-gu-name=body] .content–interactive-grid figure.element–immersive figcaption,
#feature-body .content–interactive-grid figure.element–immersive figcaption {
/ Rule continues… /
}
}The CSS code defines styles for various elements across different sections of a webpage, such as article bodies, comments, and features. It sets grid areas, margins, heights, and other layout properties for elements with specific data attributes. For wider screens, it adjusts grid columns. On iOS and Android devices, it modifies fonts, text transformations, and padding in article headers, and ensures images maintain automatic height. When scripting is enabled, articles start hidden and fade in once loaded. In dark mode, it changes color variables for links, text, and backgrounds. Responsive design is implemented with custom properties that adjust margins, padding, and grid widths based on screen size. Overall, the code ensures consistent styling and responsive behavior across different devices and user preferences.article {
–article-border: #606060;
–article-background: #ffffff;
–share-button: #ffffff;
–share-button-hover: #121212;
–article-text: #121212;
–byline-anchor: #ffffff;
–follow-icon-fill: #ffffff;
–follow-text: #ffffff;
–mobile-colour: #ffffff;
}

:root[data-app-os=”android”] {
–androidTop: 58px;
}

:root[data-app-os=”ios”] {
–iosBottomToolbar: 50px;
–iosTopToolbar: 20px;
–iosLvh: calc(100vh – var(–iosTopToolbar));
}

@media (min-height: 670px) {
:root[data-app-os=”ios”] {
–iosBottomToolbar: 84px;
–iosTopToolbar: 44px;
}
}

@media (min-height: 800px) {
:root[data-app-os=”ios”] {
–iosTopToolbar: 94px;
}
}

.layout-header {
position: relative;
}

.layout-header *:not(.layout-header-media) {
position: relative;
z-index: 2;
}

.layout-header .layout-header-media {
background-color: #121212;
position: sticky;
inset: 0;
height: 100vh;
margin: 0 calc(var(–margin) * -1);
}

@media (min-width: 61.25em) {
.layout-header .layout-header-media {
border-bottom: 1px solid var(–article-border);
}
}

.layout-header .layout-header-media video {
width: 100%;
height: 100vh;
object-fit: cover;
background-color: #000;
}

.layout-header .layout-header-media video.opacity-media {
opacity: 0.3;
transition: opacity 1s ease;
}

@media (prefers-reduced-motion: reduce) {
.layout-header .layout-header-media video.opacity-media {
transition: none;
}
}

.layout-header .layout-header-furniture {
margin-top: calc((100vh – 1px) * -1);
}

.layout-header .layout-header-furniture [data-gu-name=”title”],
.layout-header .layout-header-furniture [data-gu-name=”lines”] {
display: none;
}

.layout-header .layout-header-furniture > p {
margin-bottom: 0;
padding-bottom: 24px;
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] {
–guardian-header-height: 145px;
–headline-height: 230px;
overflow: hidden;
margin-top: calc(100vh – var(–guardian-header-height) – var(–headline-height));
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] > div > div {
padding-bottom: 14px;
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 {
color: #fff;
margin-bottom: 40vh;
padding-bottom: 2px;
padding-top: 4px;
width: 76vw;
display: block;
position: relative;
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 span {
font-family: Guardian Headline Full, Guardian Egyptian Web, Georgia, serif;
font-weight: 400;
line-height: 100%;
display: block;
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 span:first-of-type {
font-size: 48px;
padding-bottom: 8px;
}

@media (min-width: 61.25em) {
.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 span:first-of-type {
padding-top: 2px;
}
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 span:last-of-type {
font-size: 26px;
font-weight: 500;
line-height: 115%;
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] h1:before {
content: “”;
height: 4px;
width: 100%;
background-color: #fff;
position: absolute;
top: 0;
left: 0;
}

@media (min-width: 61.25em) {
.layout-header .layout-header-furniture [data-gu-name=”headline”] h1:before {
height: 6px;
}
}

@media (min-width: 46.25em) {
.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 {
width: 380px;
}
}

@media (min-width: 61.25em) {
.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 {
font-size: 70px;
}
}

@media (min-width: 71.25em) {
.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 {
margin-left: 80px;
width: 395px;
}
}

@media (min-width: 81.25em) {
.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 {
margin-left: 180px;
width: 450px;
}
}

.layout-header .layout-header-furniture [data-gu-name=”headline”] h1 span.wrap {
text-wrap: wrap;
word-break: break-all;
}

@media (min-width: 46.25em) {
.layout-header .layout-header-furniture [data-gu-name=”headline”] {
–headline-height: 200px;
}
}

.layout-header .layout-header-furniture [data-gu-name=”standfirst”] {
padding-right: var(–columnWidthPadding);
}

@media (min-width: 71.25em) {
.layout-header .layout-header-furniture [data-gu-name=”standfirst”] {
padding-right: 620px;
padding-left: 80px;
}
}

@media (min-width: 81.25em) {
.layout-header .layout-header-furniture [data-gu-name=”standfirst”] {
padding-left: 180px;
padding-right: 630px;
}
}

.layout-header .layout-header-furniture [data-gu-name=”standfirst”] p,
.layout-header .layout-header-furniture [data-gu-name=”standfirst”] a {
font-size: 24px;
}The provided text appears to be a fragment of CSS code, not a passage of English text to rewrite. It contains style rules, media queries, and class selectors for web layout and design. There is no fluent English prose here to simplify or rephrase.The layout section includes a content area with a heading styled for large screens, adjusting font size and padding at different breakpoints. The heading text wraps and breaks appropriately. Paragraphs within the content area have specific padding and color settings, with strong text styled differently.

A figures section is positioned to stick to the top of the viewport, taking up the full height of the screen. It includes smooth transitions for fading and moving into view. On larger screens, this section is placed in a designated image grid area. Images within figures are set to cover the area fully, and captions are hidden on mobile but displayed at the bottom on desktop, with a semi-transparent background.

Additional elements, like videos, are absolutely positioned to fill the same space. Some elements are only visible on desktop, appearing with a caption at the bottom. A special caption style is applied for sticky figures, positioned differently on mobile versus desktop.

A credits section at the end has specific padding and borders, with italicized text in a designated font family and color.The CSS code defines styles for a webpage layout. It sets up a fixed pagination container on the right side with interactive dots that expand to show labels on hover. The design adjusts for different screen sizes and includes reduced motion preferences. Specific sections like media and body content have customized styles, including background colors, borders, and responsive adjustments. Some elements are hidden or modified under certain conditions, such as removing transitions when motion is reduced.William Burns had traveled halfway around the world to speak with Vladimir Putin, but in the end, he had to settle for a phone call. It was November 2021, and U.S. intelligence agencies had been detecting signs in the preceding weeks that Putin might be planning to invade Ukraine. President Joe Biden sent Burns, his CIA director, to warn Putin that the economic and political consequences of such an invasion would be disastrous.

Fifteen years earlier, when Burns was the U.S. ambassador in Moscow, Putin had been relatively accessible. But the years since had concentrated the Russian leader’s power and deepened his paranoia. Since the emergence of Covid, few had been granted face-to-face meetings. Burns and his delegation learned that Putin was secluded at his lavish residence on the Black Sea coast, and only a phone call would be possible.

A secure line was set up in an office at the presidential administration building on Moscow’s Old Square, and Putin’s familiar voice came through the receiver. Burns outlined the U.S. assessment that Russia was preparing to invade Ukraine, but Putin ignored him and pressed on with his own talking points. He claimed his intelligence agencies had informed him of an American warship lurking over the Black Sea horizon, equipped with missiles that could reach his location in just minutes. He suggested this was evidence of Russia’s strategic vulnerability in a unipolar world dominated by the United States.

The conversation, along with three combative face-to-face discussions with Putin’s top security officials, struck Burns as extremely ominous. He left Moscow far more concerned about the prospect of war than he had been before the trip, and he relayed his gut feeling to the president.

“Biden often asked yes-or-no questions, and when I got back, he asked if I thought Putin was going to do it,” Burns recalled. “I said: ‘Yes.’”

Three and a half months later, Putin ordered his army into Ukraine, marking the most dramatic breach of the European security order since World War II. The story of the intelligence backdrop to those months—how Washington and London gained such detailed and accurate insight into the Kremlin’s war plans, and why the intelligence services of other countries did not believe them—has never been fully told.

This account is based on interviews conducted over the past year with more than 100 intelligence, military, diplomatic, and political insiders in Ukraine, Russia, the U.S., and Europe. Many spoke anonymously to discuss events that are still sensitive or classified; those quoted by name are referred to by their job titles at the time.

It is the story of a spectacular intelligence success, but also one of several intelligence failures. First, for the CIA and MI6, who correctly predicted the invasion scenario but failed to accurately forecast the outcome, assuming a swift Russian takeover was inevitable. More profoundly, European services failed by refusing to believe a full-scale war in Europe was possible in the 21st century. They remembered the dubious intelligence used to justify the invasion of Iraq two decades earlier and were wary of trusting the Americans on what seemed like a fantastical prediction.

Most crucially, the Ukrainian government was thoroughly unprepared for the coming assault. President Volodymyr Zelensky spent months dismissing increasingly urgent American warnings as scaremongering and suppressed last-minute concerns among his own military and intelligence elite, who eventually made limited attempts to prepare behind his back.

“In the final weeks, the iIntelligence leaders were beginning to understand, and the atmosphere had shifted. However, the political leadership refused to accept the reality until the very last moment, according to a U.S. intelligence official.

Four years later, these events offer important lessons on intelligence gathering and analysis. As the world seems more unpredictable than it has been in recent memory, one of the most relevant takeaways is the danger of dismissing a scenario simply because it appears irrational or impossible.

Jake Sullivan, President Biden’s national security adviser, reflected on why European allies did not believe U.S. warnings: “I felt the evidence we presented was overwhelming. We didn’t withhold anything that would have changed their minds—they were just convinced it didn’t make sense.”

Putin Begins Planning

The CIA uncovered extensive details about Putin’s plans to invade Ukraine, but one question remained unanswered: when exactly did he decide to go all in? Later, agency analysts reviewing the evidence identified the first half of 2020 as the most likely period.

During those months, Putin pushed through constitutional amendments to extend his rule beyond 2024. Isolated during the COVID-19 pandemic, he immersed himself in Russian history and contemplated his own legacy. That summer, the violent suppression of protests in Belarus left President Alexander Lukashenko weakened and increasingly dependent on the Kremlin, opening the door for Russia to use Belarusian territory as a launchpad for invasion.

Around the same time, FSB agents poisoned opposition leader Alexei Navalny with novichok nerve agent, sending him into a coma. At the time, these events seemed unrelated. In hindsight, they appeared to be Putin aligning his pieces before executing his bold Ukraine plan—a move he believed would secure his place in history as a great Russian leader.

Hints of this plan emerged in spring 2021, as Russian troops amassed along Ukraine’s borders and in occupied Crimea under the guise of military exercises. U.S. intelligence suggested Putin might use a scheduled speech on April 21 to justify military action. Alarmed by the briefing, Biden called Putin a week before the speech, expressing concerns about the buildup, urging de-escalation, and proposing a summit—an offer he knew would appeal to Putin, according to Avril Haines, Biden’s director of national intelligence.

When Putin delivered the speech, it was less aggressive than expected. The next day, Russia announced the end of its border exercises. The summit proposal seemed to have eased tensions, and when the two leaders met in Geneva in June, Putin barely mentioned Ukraine.

Only later did it become clear why: he had already chosen a non-diplomatic path.

Raising the Alarm

Four weeks after the Geneva summit, Putin published a lengthy, meandering essay on Ukrainian history, arguing that Ukraine’s “true sovereignty is possible only in partnership with Russia.” The piece drew attention, but focus in London and Washington soon shifted to the chaotic withdrawal from Afghanistan. By September, Russian troops had begun another buildup along Ukraine’s borders.In October 2021, a new Russian military buildup near Ukraine’s borders grew to a size that could not be ignored within a month. Washington gathered fresh intelligence on Russian plans, which was more detailed and far more alarming than what they had seen in the spring. Previously, the assumption was that Russia might formally annex the Donbas region or, in a worst-case scenario, try to carve out a land corridor through southern Ukraine to connect Donbas with occupied Crimea. Now, it appeared Putin could be planning something larger: he wanted Kyiv.

Many in the U.S. political establishment were highly skeptical, but intelligence analysts were deeply concerned by what they were seeing. “There was enough information coming in that made it clear this was no longer a remote possibility,” said Avril Haines. After CIA Director William Burns returned from Moscow, the alarms rang even louder. President Joe Biden stated that, whether the intelligence was correct or not, it was time to start planning.

In mid-November, Biden sent Haines to Brussels. At the annual meeting of NATO intelligence chiefs, she presented the U.S. assessment that there was now a real possibility of a massive Russian invasion of Ukraine. Britain’s MI6 chief, Richard Moore, supported her view. As part of the Five Eyes alliance, Britain had access to most of the U.S. intelligence and also had its own sources pointing toward a potential invasion. However, the initial reaction in the room was skepticism. Some dismissed the idea of an invasion outright, while others worried that a strong NATO response could be counterproductive, potentially provoking the very scenario the U.S. feared.

Managing this perception would remain a concern for the U.S. and Britain in the following months. “We had to make sure we weren’t going to do anything that gave them an excuse to invade,” said Chris Ordway, a senior British Ministry of Defence official. At the same time, London and Washington believed Russia could be ready to invade in just two more months, and they wanted to sound the alarm.

Biden ordered his team to share as much intelligence as possible with allies to help them understand Washington’s concerns. He also suggested declassifying some information for public release, though this had to be done carefully to avoid exposing sources and methods. “These are sources and methods that we put our blood and sweat and tears into obtaining, and they can put people’s lives at risk if lost,” Haines explained.

A system was set up allowing officials from various intelligence agencies to review any information before release, ensuring nothing slipped through that could compromise a source. In the following weeks, the U.S. declassified more sensitive intelligence than at any recent time, sharing it with allies and often the public. “We were getting classified briefings from the Americans, and then a few hours later you’d read the exact same information in the New York Times,” said one European official.

In late October, the CIA and MI6 sent memos to Kyiv outlining their alarming new assessments. The following week, after Burns’ visit to Moscow, two U.S. officials from the trip broke away and flew to Kyiv. There, they briefed two senior Ukrainian officials on U.S. fears and Burns’ conversations in Moscow. “We basically said: ‘We will follow up. You’ll see the intel. This is not a normal warning, this is really serious. Trust us,'” said Eric Green, one of the U.S. officials. The Ukrainians appeared skeptical.

In mid-November, British Defence Secretary Ben Wallace visited Kyiv and conveyed the warnings to President Volodymyr Zelensky.In London, officials believed a Russian invasion was now a matter of “when,” not “if.” They urged President Zelenskyy to begin preparing Ukraine for war. “You can’t fatten a pig on market day,” UK Defense Secretary Ben Wallace reportedly told Zelenskyy, according to a source familiar with the meeting. Zelenskyy appeared to listen passively.

Zelenskyy had been elected in 2019 on a promise to pursue peace negotiations and end the conflict Russia started in eastern Ukraine in 2014. While he no longer believed he could strike a deal with Putin, he worried that public talk of a major war would cause panic in Ukraine. He feared this could trigger an economic and political crisis, collapsing the country without Russia ever needing to send troops across the border—a scenario he suspected was Putin’s plan all along. Zelenskyy grew increasingly frustrated with American and British officials, who alongside private warnings were starting to discuss the invasion threat publicly.

In November, he sent one of his top security officials on a secret mission to a European capital. The message, delivered through intelligence channels, was that the war scare was fake and part of a U.S. effort to pressure Russia.

Few in Ukraine believed a full-scale invasion was likely, but the country’s intelligence agencies were noticing troubling signs of increased Russian activity. Ivan Bakanov, head of Ukraine’s SBU security service, recalled that while Russian spies had traditionally focused on recruiting high-level Ukrainian sources, in the year before the invasion “they were going after everyone,” including chauffeurs and low-level officials. Often, these recruitment attempts were “false flag” operations, with Russian agents pretending to belong to Ukrainian intelligence.

The SBU also tracked secret meetings between Russian FSB officers and Ukrainian civil servants or politicians. These often took place in luxury hotels in Turkey or Egypt, where the Ukrainians traveled under the guise of tourism. Russia hoped these individuals—motivated by ideology, ego, or money—would act as a fifth column when the time came.

“Before I came to the SBU, I also thought we could do a deal with the Russians,” said Bakanov, a former business partner of Zelenskyy with no prior intelligence background when appointed in 2019. “But when you see every day how they are trying to kill and recruit people, you understand that they have a different plan, that they are saying one thing and doing another.”

Still, the prevailing mood in Kyiv was that U.S. warnings were exaggerated. Ukraine had been fighting Russian proxy forces in the Donbas for eight years, but the idea of a full-fledged war—with missile attacks, tank columns, and a march on Kyiv—seemed unimaginable.

A European intelligence official said this view persisted in briefings from Ukrainian counterparts in the months before the invasion. “The message was: ‘Nothing is going to happen, it’s all sabre-rattling,'” the official said. “They thought the absolute maximum possible was a skirmish in the Donbas.”

Later, when it became clear the U.S. and Britain had been right all along, many wondered what made them so certain. Was there a mole in Putin’s inner circle passing war plans to the CIA or MI6?

“Often, it’s presented as ‘we found the plans,’ but it definitely was not that simple,” said Avril Haines, the U.S. Director of National Intelligence. One of the clearest indicators was partly visible in commercial satellite imagery: tens of thousands of Russian troops moving into position near the Ukrainian border.In November 2021, Russian troops were deployed to Yelnya, in the western Smolensk region. A senior official from Britain’s military intelligence service, DI, stated, “These troop movements were unexpected, and it was difficult to find explanations for them other than preparing for use.”

Intercepted military communications, while not explicitly mentioning an invasion, often described actions that would only make sense if an invasion was being planned. Additional intelligence from various sources pointed in the same direction, including pro-Russian groups conducting groundwork in Ukraine to potentially support military action and a Russian program to increase reservist numbers. Avril Haines noted, “For the first time, we saw information indicating the potential for action west of the Dnipro River,” which divides Ukraine.

Most interviewees declined to specify the exact intelligence collected to protect sources and methods. However, discussions with dozens of people familiar with the evidence provided many clues. Two sources indicated that intercepts from the Russian army’s Main Operations Directorate, led by Colonel General Sergei Rudskoi, were likely a key source of invasion information. Rudskoi, described by a former insider as “the best-informed person inside the general staff,” oversees all strategic planning from his unit within the general staff headquarters in Moscow, where war plans were developed, even as other top commanders were kept unaware.

Preparations were also detectable in other parts of the Russian military and intelligence services, even if those involved did not know the ultimate goal. A U.S. official remarked, “Most people in Russia did not know about the plan. But to make it possible, enough things had to happen that it was very difficult to hide.”

In his book “War,” journalist Bob Woodward mentioned a “human source in the Kremlin” without providing details. While possible—such as a CIA source within Putin’s circle who was exfiltrated in 2017—it is more likely that human sources in Russia offered supporting evidence rather than core details. Key intelligence reportedly came from satellite imagery and intercepts by the U.S. NSA and Britain’s GCHQ. One source stated, “No human source detected.”

By December 2021, ten weeks before the invasion, the U.S. and Britain had a clearer picture of Putin’s potential war plan. In Washington, a cross-agency “tiger team” began meeting three times a week to prepare for a worst-case scenario: a full-scale attack aimed at regime change. However, there was no solid evidence that Putin had decided to act.

In Paris, Berlin, and Kyiv, intelligence agencies viewed the military buildup as a bluff to pressure Ukraine, not as a genuine war plan. A British defence intelligence official said “huge amounts of effort” were made to persuade French and German counterparts, including multiple briefing trips.The allegations were largely met with resistance. “I think they started from the position: ‘Why would he?’ And we started from: ‘Why wouldn’t he?’ That simple difference in wording can lead you to completely different conclusions,” said the official.

For some Europeans, memories of the flawed intelligence that led to the 2003 Iraq invasion fueled skepticism about this new war scare. One European foreign minister, who asked not to be named, recalled a heated discussion with U.S. Secretary of State Antony Blinken: “I’m old enough to remember 2003, and back then I was one of those who believed you,” the minister told him. While the British and Americans were sharing more intelligence than usual, the most sensitive information often had its sources hidden for protection. “They warned us, they really did,” said the minister. “But they said: ‘You have to take our word for it.'”

Even when 2003 wasn’t mentioned directly, officials often felt its influence. “The reluctance to trust us was definitely a legacy of Iraq,” said John Foreman, Britain’s defense attaché in Russia, who held biweekly meetings with NATO military attaches in Moscow before the invasion. He and a U.S. colleague tried, mostly unsuccessfully, to convince their European counterparts the threat was real: “If you’re showing people things and they still don’t believe you, you’ve got a problem,” he said.

A major psychological hurdle for some European intelligence services was their belief that Putin was a largely rational actor. They were deeply skeptical that he would pursue a plan they thought was likely to fail. According to Russian estimates gathered by a Western intelligence service, Moscow believed only 10% of Ukrainians would resist an invasion, while the rest would either actively support or reluctantly accept a Russian takeover. This was a wildly optimistic assessment, but even 10% of Ukraine’s population meant 4 million people. The Europeans believed the force Russia had assembled was nowhere near enough to overcome such resistance.

“We had all the same information about the troops at the border, but we differed in our analysis of what was in Putin’s head,” said Étienne de Poncins, the French ambassador to Kyiv.

Even Poland, traditionally hawkish on Russia, wasn’t convinced a full-scale invasion was coming. “We assumed that the SVR and GRU [Russian intelligence agencies] would tell Putin that Ukrainians would not welcome the Russians with flowers and freshly baked cakes,” said Piotr Krawczyk, head of Poland’s foreign intelligence service. Polish intelligence had good insight into neighboring Belarus, where the forces poised to descend on Kyiv from the north were stationed, and these appeared to be the weakest troops of all. “They were mostly newly drafted recruits… they lacked ammunition, fuel, leadership, and training,” said Krawczyk. It looked like a diversion to draw Ukrainian attention and firepower away from a limited incursion in the Donbas, not a serious force capable of occupying most of the country.

The Americans, however, had access to detailed Russian plans for a new political order in Ukraine and became increasingly convinced that Putin was preparing for a full-scale invasion with the goal of regime change. “He was not looking at a menu and saying: ‘I could do small, medium, or large,'”Sullivan said, “He was very focused on taking over Kyiv.”

A poster of Putin being used for target practice in Ukraine’s Luhansk region in early 2022.

In Washington, the initial assumption was that Putin would succeed, at least in the early stages of the war. Ukraine’s defense minister, Oleksiy Reznikov, recalled a visit to the Pentagon shortly after taking office in November 2021. He was skeptical about the invasion warnings but saw that the Americans were convinced. When he asked if they would send more and better weapons to help defend Ukraine, he was firmly turned down.

Reznikov said, “Imagine your neighbor comes home with a cancer diagnosis and is told they have three days to live. You’ll offer sympathy, but you won’t give them expensive medicine.”

Six weeks before the invasion, Macron met with Putin in Moscow on February 7, 2022.

In early January, the Americans obtained more detailed plans: Russian troops would invade Ukraine from multiple directions, including Belarus; airborne forces would land at Hostomel airport near Kyiv to seize the capital; and there was a plot to assassinate Zelenskyy. Preparations for after the invasion were also underway, with lists being made of “problematic” pro-Ukrainian figures to be detained or executed, and pro-Russian figures to be installed to run Ukraine.

CIA Director Burns flew to Kyiv to brief President Zelenskyy in person on the looming threat, but the response was not what he might have hoped. A week later, Zelenskyy released a video urging Ukrainians not to listen to predictions of conflict. He insisted that by summer, Ukrainians would be grilling meat as usual and that he “sincerely believed” there would be no major war in 2022. “Breathe deeply, calm down, and don’t rush to stock up on food and matches,” he told the public. This advice proved catastrophic, as thousands would soon be trapped in conflict zones or under Russian occupation.

Ukrainian civilians attended combat and survival training in early 2022.

Zelenskyy remained concerned, not without reason, that panic over war could crash the economy. Authorities did organize military training courses, and thousands of Ukrainians alarmed by the warnings signed up. But deep down, Zelenskyy seemed to distrust the Americans, partly because the West was not united. French and German leaders Emmanuel Macron and Olaf Scholz still believed war could be avoided through negotiation. “The British and Americans were saying it would happen,” said one senior Ukrainian official. “But the French and Germans told him, ‘Don’t listen to this; it’s all nonsense.'”

Three days after Zelenskyy’s video appeal on January 22, the British Foreign Office claimed intelligence showed Russia planned to install former Ukrainian MP Yevhen Murayev—a marginal figure with little public profile—as prime minister after the invasion. To many, this sounded unbelievable.

“When Britain announced that, I became even more skeptical,” said a European intelligence official. “It didn’t make any sense. Surely the Russians weren’t that stupid?”

Two weeks before the invasion, Ramzan Kadyrov and the U.S. embassy in Kyiv.

By mid-February, the British, U.S., and some other embassies had evacuated Kyiv, destroying sensitive equipment before leaving. The CIA station withdrew to a secret base in western Ukraine, dropping off a few shoulder-fired anti-tank missiles at SBU headquarters as a farewell gift.As tensions mounted, key staff at the UK Ministry of Defence in London moved into nearby hotels to be minutes from work when needed. Many European countries had already reduced their presence in Kyiv to skeleton crews and prepared evacuation plans. However, French President Emmanuel Macron and German Chancellor Olaf Scholz still believed Russian President Vladimir Putin could be dissuaded from attacking. Both travelled to Moscow in February to advocate for diplomacy. After six hours of talks in the Kremlin, Macron proudly announced he had “secured an assurance” from Putin that Russia would not escalate.

Meanwhile, the United States interpreted Moscow’s signals very differently. In President Joe Biden’s final call with Putin on February 12, he found the Russian leader steely, determined, and completely uninterested in negotiations. After hanging up, Biden told his aides it was time to prepare for the worst—war was inevitable and could begin any day.

Biden’s calls with Ukrainian President Volodymyr Zelenskyy sometimes grew strained as the U.S. president bluntly warned that Russian forces were coming for Kyiv. Frustrated by the difficulty in convincing Zelenskyy and his team, U.S. National Security Advisor Jake Sullivan shifted focus to Ukrainian intelligence and military officials, hoping they would sound the alarm from within.

“At every meeting, they told me it’s happening for sure,” recalled a Ukrainian intelligence official based in Washington, describing frequent meetings with CIA counterparts. “When I looked into their eyes, I could see there was no doubt. And every time, they asked me: ‘Where are you going to take the president? What’s the plan B?’” He told them there was no plan B.

Prompted by U.S. warnings and their own intelligence, a small group within Ukraine’s military intelligence agency (HUR) began discreet contingency planning in January. Under the cover of a month-long training exercise, they rented several safe houses around Kyiv and secured large amounts of cash. When the war had not started by mid-February, they extended the “training” for another month.

Ukraine’s commander-in-chief, Valerii Zaluzhnyi, was frustrated that Zelenskyy would not declare martial law, which would have allowed troop repositioning and battle preparations. “You’re about to fight Mike Tyson and the only fight you’ve had before is a pillow fight with your little brother. It’s a one-in-a-million chance and you need to be prepared,” he said.

Without official approval, Zaluzhnyi did what planning he could. In mid-January, he and his wife moved from their ground-floor apartment into his official quarters inside the military compound for security and to work longer hours. In February, top army commanders held tabletop exercises to plan for various invasion scenarios, including an attack on Kyiv and even a scenario worse than what eventually occurred—a Russian seizure of a corridor along Ukraine’s western border to cut off allied supplies. However, without authorization from leadership, these plans remained on paper; any major troop movements would have been illegal and difficult to conceal.

In the second week of February, Ukraine’s border guard intercepted what should have been decisive evidence: communications from a Chechen unit commander stationed in Belarus to Ramzan Kadyrov, the Kremlin-appointed leader of Chechnya. The commander reported that his men were in position and ready.He would soon be in Kyiv. Zelenskyy was shown the recording but remained unconvinced, according to a well-informed source. At security council meetings, the prevailing view was still that a full-scale invasion was unlikely and that the military buildup was meant to exert economic and political pressure on Ukraine.

“Many of us were uneasy, but I suppose everyone decided the safest course was to agree with the president,” said one senior official.

Several Ukrainian sources said they believed Zelenskyy was adamant that a major invasion was unthinkable because his chief of staff and closest confidant, Andriy Yermak, had convinced him of it. Yermak believed Russia operated in the grey, deniable zone of hybrid warfare and would not launch a large, dramatic invasion that would permanently sever relations with the West.

Yermak, who declined an interview request for this story, was one of the few Ukrainian officials to have regular contact with Russian counterparts. He often spoke with Putin’s deputy chief of staff, Dmitry Kozak, as part of long-stalled negotiations over the Donbas region.

If Kozak helped reassure Yermak that the U.S. warnings of an invasion were ludicrous, it was likely because he believed so himself. According to two well-connected Russian sources, the CIA estimated that only a handful of non-military officials knew the details of Putin’s plans until very late. Kozak was kept in the dark, along with Foreign Minister Sergei Lavrov and Putin’s longtime spokesperson, Dmitry Peskov.

Even a week before the invasion, most of the Russian elite still had no idea what was coming. “I got a call from someone high up in the Kremlin saying: ‘There are a lot of military guys around Putin, the atmosphere is tense, and something is going on, but we don’t know what,’” said one political insider.

Things started to become clearer on February 21 when Putin gathered his security council in one of the Kremlin’s grand, marbled halls. He sat alone at a desk, with his advisers assembled on chairs awkwardly far across the room. Putin called them one by one to a podium to express their support. Ostensibly, the council was debating whether to formally recognize the Donetsk and Luhansk “people’s republics”—which Russia had de facto occupied since 2014—as independent states. But the subtext was clear: this was a war committee.

Many in the elite appeared stunned as Putin called on them to give their consent. Sergei Naryshkin, the foreign intelligence chief, looked terrified and stumbled over his words, stammering through a confused answer that prompted Putin to chuckle disdainfully before eventually securing his agreement.

One Russian insider said the mood of the meeting recalled historical accounts of the Kremlin in the spring of 1941, when Stalin’s intelligence chiefs tried to warn him that Nazi Germany was about to invade the Soviet Union but were afraid to push too hard, given the leader’s firm belief it wouldn’t happen. “Naryshkin had information about Ukraine that didn’t match what everyone else was saying,” said the source. “But he is weak and indecisive, and Putin wanted to make sure everyone was seen as part of this decision. That’s why you saw the behavior you saw.”

Off camera, there was another startling interaction. Kozak, Putin’s point man on Ukraine, had a reputation in Washington as a hardliner, but privately he was horrified by the idea of an invasion, which he only fully realized was imminent during these final days.During the Kremlin meeting, a source close to him said that Kozak, who had known Putin for decades, was the only person in the room brave enough to speak up. Arguing from a strategic rather than a moral standpoint, he told the president that invading Ukraine would be a disaster. Like most of the elite, he still did not know whether Putin’s plan was for limited military action in Donbas or a full-scale war. After the meeting ended, he continued to debate with Putin one-on-one in the large hall, the source added.

The millions of Russians watching on television saw none of that. Instead, they heard Putin ask: “Are there any other points of view or special opinions on this matter?” The question was met with silence.

Two days before the invasion

On February 22, the day after Putin’s theatrical performance, Ukraine’s own security council met in Kyiv. As the bigwigs gathered outside the hall before the meeting, Zaluzhnyi tried to rally support for introducing martial law, which would finally allow him to begin moving troops. Inside, he was backed by Defence Minister Reznikov. But Zelenskyy was still worried about sowing panic, and the council rejected martial law, opting instead for the lesser measure of declaring a state of emergency.

A few hours later, Security Council Chief Oleksiy Danilov handed Zelenskyy a red folder containing a top-secret intelligence report about a “direct physical threat” to the president—meaning assassination teams were on the way. Zelenskyy seemed to brush it off, but the information clearly made an impression. The next day, in a somber meeting with the Polish and Lithuanian presidents inside Kyiv’s grand Mariinsky Palace, Zelenskyy told them it might be the last time they saw him alive. As soon as the meeting ended, Polish intelligence officers hurried the two visiting presidents into a motorcade that sped west at top speed.

Poland’s ambassador to Ukraine, Bartosz Cichocki, remained in Kyiv. A couple of hours later, he was summoned to the embassy to receive a classified telegram from Warsaw. It was a brief, one-paragraph message stating that the invasion would start that night. In the final two weeks, the Poles had revised their earlier skepticism about an invasion, partly based on new intelligence about Russian troops stationed in Belarus. Now they had final confirmation that the attack was imminent. It was one of the last such telegrams the embassy received; later, one of the Polish intelligence officers still in Kyiv would spend hours smashing the encryption equipment with a heavy mallet to prevent it from falling into Russian hands.

After reading the telegram several times, Cichocki stepped outside for some fresh air. He watched the people of Kyiv going about their business on a winter evening—a jarringly normal scene given what he now knew. People were checking the playbill at a theater across the street, and part of him wanted to run over shouting, to warn them that war was coming and there would be no more performances. Instead, he walked home quietly, his mind filled with thoughts of how the world was about to change.

Eight hours before the invasion

If Warsaw was now aligned with London and Washington, Paris and Berlin remained doubtful until the final moments. The intelligence assessments of both countries now acknowledged that some kind of military action was possible, but they still rejected the idea of a full-scale invasion targeting Kyiv. The French ambassador would only learn of it when he was awakened in his high-rise apartment by the sound of Russian missiles.

Even more telling is the story of Bruno Kahl, the head of Germany’s BND foreign intelligence service. By the time his plane landed in Kyiv late on the evening of February 23, the U.S., British, and Polish intelligence services were already certain that a full-scale invasion was just hours away.Polish intelligence agencies had already confirmed that Russian attack orders had been issued. Panicked messages about the imminent invasion were even circulating among foreign journalists in Ukraine, who had been tipped off by their intelligence sources. But Kahl was either unaware of this information or unfazed by it.

Shortly after Kahl arrived at his upscale Kyiv hotel, the German ambassador to Ukraine received instructions from the foreign ministry in Berlin to evacuate all remaining diplomatic staff from Kyiv by road immediately. The ministry said the threat was too urgent to wait until morning. Even then, the German spy chief declined an invitation to join the midnight diplomatic convoy, citing important meetings scheduled for the next day. Unsurprisingly, those meetings never happened. Instead, Kahl had to be extracted from Kyiv on the day of the invasion with help from Polish intelligence, traveling along roads clogged with fleeing Ukrainians.

At Ukrainian army headquarters on the final evening before the attack, Zaluzhnyi and his top generals scrambled to implement last-minute measures. Mines were laid on the bed of the Black Sea to prevent a potential maritime landing in Odesa, and some units were ordered to move to more strategic positions. “All of this was strictly forbidden. If the invasion hadn’t happened, we could have faced court cases for doing it, but most commanders accepted we had no choice and carried it out,” one general said.

Ukraine’s military intelligence agency, HUR, was also making quiet preparations. On February 18, its head, Kyrylo Budanov, received a three-hour briefing from a Western official who detailed Russian plans to seize Hostomel airfield. This information helped shape last-minute defensive plans, though the Ukrainian victory at Hostomel in the first days of the war would be chaotic and narrowly won.

On the eve of the invasion, Budanov met with Denys Kireev, a Ukrainian banker with deep connections in the Russian elite, who had agreed months earlier to share information with HUR from his contacts in Russia. Kireev told Budanov that the decision to invade had been made and provided details about the timing and direction of the Russian attack. (The SBU believed Kireev was a triple agent ultimately working for Moscow, and he was shot dead as the SBU tried to detain him a few days after the invasion.)

As for Zelenskyy, his remark to the Polish and Lithuanian presidents that they might not see him alive again suggested that, at the last moment, he had accepted the gravity of what was coming. Later that day, he tried to call Putin but was rebuffed. Instead, he recorded a video message to Russian citizens, urging them to stop their leadership from starting a war. He also told them, “If you attack, you will see our faces. Not our backs, but our faces.” It was a complete shift in tone from his earlier messages.

Nevertheless, Zelenskyy and his wife, Olena, went to bed as usual that night, she later said. She had not even packed an emergency suitcase—something she would do hurriedly the next day while listening to distant explosions as she evacuated with their two children to an undisclosed location amid assassination threats. The invasion also caught most of the Ukrainian cabinet by surprise, including Defence Minister Reznikov. He went to bed with an alarm set for 6 a.m., planning to take a military plane to the contact line in the Donbas with Baltic foreign ministers as a show of defiance in the face of heightened threats. Instead, he was awakened at 4 a.m. by a call from Zaluzhnyi, who told him the war was about to begin.

One Ukrainian official who knew what was coming was Foreign Minister Dmytro Kuleba. He had traveled to Washington for meetings on February 22, where intelligence officials showed him the exacteral. “The country would most likely have fallen.”

Lessons Learned

For the European intelligence services that failed to foresee the invasion, a period of soul-searching followed. One European intelligence officer said they were furious over the failure and had pushed internally for an inquiry into what could have been done better. “The whole reason for an intelligence service to exist is to predict when the next war will come,” said the officer. “And we completely messed it up.”

Huw Dylan, a historian of intelligence at King’s College London, said there is a long history of analysts being unwilling to predict events that would create a dramatic break with the past. People could not imagine what a major European land war would look like in the 21st century, so they assumed it was unlikely to happen. Additionally, skepticism is usually the safer option. “If you’re predicting something that has massive implications, you’ve got more to answer for if you get it wrong,” he said.

The failure regarding Ukraine has started to change that. As one German official put it: “The main thing we took away from all of this was that we need to work with worst-case scenarios much more than we did before.”

Now, as the world has entered a new era of uncertainty, there are more worst-case scenarios to consider. Recent European military exercises have focused on how to maintain order after massive attacks on power and communications infrastructure that cause civil unrest. For the first time in a century, Canada is modeling potential responses to a U.S. invasion.

For many, the key intelligence lesson from Ukraine was stark: do not rule things out just because they might once have seemed impossible.

Numbers mark the graves of unidentified residents killed during fighting in the Ukrainian port city of Mariupol. Photograph: Sergei Ilnitsky/EPA

Credits
Additional reporting: Pjotr Sauer and Ada Petriczko
Animation: Anaïs Mims
Art direction: Ellen Wishart
Design and development: Pip Lev, Harry Fischer, Fred O’Brien, Alessia Amitrano
Ticker animation: Adapted from Peter Butcher

Frequently Asked Questions
FAQs A War Foretold How the CIA and MI6 Uncovered Putins Plans for Ukraine and Why No One Believed Them

BeginnerLevel Questions

What is this bookarticle about
Its an investigative report detailing how Western intelligence agencies specifically the CIA and MI6 gathered information predicting Russias fullscale invasion of Ukraine long before it happened in February 2022 and explores the political and psychological reasons why these warnings were largely dismissed

Who are the main organizations involved
The primary intelligence agencies are the CIA and MI6 The book also involves Western governments NATO and the Russian government under Vladimir Putin

What does foretold mean in this context
It means the war was predicted or warned about in advance Intelligence agencies had specific credible information about Putins plans and intentions making the invasion something they saw coming not a surprise attack

Why is it significant that the CIA and MI6 uncovered the plans
These are two of the worlds most powerful and respected intelligence agencies When they both agree on a grave threat it typically carries immense weight The fact that their warnings were still ignored makes it a major intelligence and policy failure

Why would no one believe such serious warnings
The book argues it was a combination of factors Western leaders longheld belief that Putin was bluffing or using threats as a negotiation tactic a desire to avoid the economic and political costs of a confrontation and perhaps an underestimation of Putins willingness to launch a largescale conventional war

Advanced Detailed Questions

What kind of intelligence did they supposedly uncover
Reports suggest it included intercepted communications satellite imagery of troop and equipment buildups human intelligence reporting on Kremlin planning and analysis of Putins speeches and writings indicating his intent to reclaim what he sees as historically Russian land

How far in advance were these warnings given
Public reporting indicates that detailed warnings about a fullscale invasion plan were being shared with allies as early as late 2021 with some analysts flagging the risk even earlier based on Putins longterm rhetoric and military reforms

Who specifically didnt believe the warnings
The book likely points to