Fleet and Elastic Agent 8.18.0
editFleet and Elastic Agent 8.18.0
editReview important information about the Fleet and Elastic Agent 8.18.0 release.
Known issues
editInaccurate option to upgrade across major releases appears in Fleet UI
Details
In late 8.x releases, there’s a bug in the Fleet UI that causes 9.0.0
to appear as an option for Elastic Agent upgrades. This option results in an error when selected, as upgrades across major releases are not supported for Elastic Agent. For example, an agent can’t be upgraded to version 9.0 while Kibana and Fleet Server are on version 8.x.
The Elastic Agent upgrade is not selectable:

The Fleet Server upgrade is selectable, with an inconsistent UI state and error on submit:

Impact
In the 9.x releases, the option that appears in the UI for an upgrade across a major release should be ignored.
On Windows, Elastic Agent is unable to re-enroll into Fleet
Details
There is a known issue where an Elastic Agent installed on Windows and previously enrolled into Fleet is unable to re-enroll. Attempting to enroll the Elastic Agent fails with the following error:
Error: the command is executed as root but the program files are not owned by the root user.
Impact
The issue affects Elastic Agent installed on Windows. Until a bug fix is available in a later release, you can temporarily resolve the issue by changing the ownership of the Elastic Agent directory:
icacls "C:\Program Files\Elastic\Agent" /setowner "NT AUTHORITY\SYSTEM" /t /l
After the output confirms all files were successfully processed, run the enroll
command again.
Elastic Agents remain in an "Upgrade scheduled" state
Details
There is a known issue where Elastic Agent remains in an Upgrade scheduled
state when a scheduled Elastic Agent upgrade is cancelled. Attempting to restart the upgrade on the UI returns an error: The selected agent is not upgradeable: agent is already being upgraded.
.
Impact
Until this issue is fixed in a later patch version, you can call the Upgrade an agent endpoint of the Kibana Fleet API with the force
parameter set to true
to force-upgrade the Elastic Agent:
curl --request POST \ --url https://<KIBANA_HOST>/api/fleet/agents/<AGENT_ID>/upgrade \ --user "<SUPERUSER_NAME>:<SUPERUSER_PASSWORD>" \ --header 'Content-Type: application/json' \ --header 'kbn-xsrf: true' \ --data '{"version": "<VERSION>","force": true}'
To force-upgrade multiple Elastic Agents, call the Bulk upgrade agents endpoint of the Kibana Fleet API with the force
parameter set to true
:
curl --request POST \ --url https://<KIBANA_HOST>/api/fleet/agents/bulk_upgrade \ --user "<SUPERUSER_NAME>:<SUPERUSER_PASSWORD>" \ --header 'Content-Type: application/json' \ --header 'kbn-xsrf: true' \ --data '{"version": "<VERSION>","force": true,"agents":["<AGENT_IDS>"]}'
fleet-agents template is missing mappings
Details
On May 2, 2025 a known issue was discovered that the .fleet-agents
index template was missing a mapping for the local_metadata.complete
attribute. This may cause agent checkins to be rejected and the agents to appear as offline.
In this Fleet’s logs this will appear as:
elastic fail 400: document_parsing_exception: [1:209] object mapping for [local_metadata] tried to parse field [local_metadata] as object, but found a concrete value Eat bulk checkin error; Keep on truckin'
And in the Elastic Agent logs it will appear as:
"log.level":"error","@timestamp":"2025-04-22:12:35:25.295Z","message":"Eat bulk checkin error; Keep on truckin'","component":{"binary":"fleet-server","dataset":"elastic_agent.fleet_server","id":"fleet-server-es-containerhost","type":"fleet-server"},"log":{"source":"fleet-server-es-containerhost"},"service.type":"fleet-server","error.message":"elastic fail 400: document_parsing_exception: [1:209] object mapping for [local_metadata] tried to parse field [local_metadata] as object, but found a concrete value","ecs.version":"1.6.0","service.name":"fleet-server","ecs.version":"1.6.0"
This attribute was added to the template in versions: 8.17.11 8.18.3, and 8.19.3.
Further investigation revealed that the .fleet-agents
index template was not correctly applied due to an unchanged _meta.managed_index_mappings_version
number.
This change also affects other attributes as well, such as upgrade_attempts
, namespaces
, unprivileged
, and unhealthy_reason
.
If there is an error related to any of these attributes, there will be a similar error message in the logs.
Impact
Updating to a version with a fixed _meta.managed_index_mappings_version
will correctly apply the new index template.
The fixed versions are 8.18.8, 8.19.4, 9.0.8, 9.1.4.
New features
editThe 8.18.0 release Added the following new and notable features.
- Fleet
- Elastic Agent
-
- Add ability to run the Elastic Distribution of OTel Collector at the same time as other inputs. This feature is in technical preview. #5767 #5796
- Add a sample configuration to be used when deploying the OpenTelemetry Kube Stack Helm Chart. #5822
- Add the GeoIP OpenTelemetry processor to Elastic Agent. #6134
- Add the OpenTelemetry routing connector to the Elastic Distribution of OTel Collector. #6210
- Add support for the OTel loadbalancing exporter to Elastic Agent. #6315
- Add a new Kubernetes deployment of the Elastic Distribution of OTel Collector named "gateway", to simplify the daemonset collector configuration and unify managed/self-managed scenarios. #6444
-
Add the
components
command for Elastic Agent in OTel mode, to list the supported components the the Elastic Distribution of OTel Collector includes. #6539 -
Add the
receivercreator
andk8sobserver
components to the Elastic Distribution of OTel Collector to help cover autodiscovery scenarios in Kubernetes. #6561 -
Add the
kafkaexporter
andkafkareceiver
the Elastic Distribution of OTel Collector to help prepare support for a Kafka output. #6593 #6562 - Add the nopreceiver to the Elastic Distribution of OTel Collector. #6603
- Change the default gRPC port to 0 when Elastic Agent is run in a container. #6585
Enhancements
edit- Fleet
-
- Enable sub-feature privileges for Fleet. (#203182)
- Fleet Server
- Elastic Agent
-
- Re-enable the OTel subcommand on Windows. #6068 #4976 #5710
- Update the Elastic Agent to only run composable providers if they are referenced in the agent policy. #6169 #3609 #4648
- Add a flag to skip Fleet audit or unenroll when uninstalling Elastic Agent. #6206 #5757
- Embed hints-based inputs in the Elastic Agent Kubernetes container image. #6381 #5661
-
Add an error to the Windows Application Event Log if the
install
,uninstall
, orenroll
commands fail. #6410 #6338 - Add a logger to print the status and code when an Elastic Agent enrollment call to Fleet fails. #6477 #6287
- Update Elastic Agent Go version to 1.24.0. #6932
- Update OTel components to v0.120.x. #7443
Bug fixes
edit- Fleet
-
-
Support
is_default
on integration deployment modes. (#208284) - Fix a UI error caused when an agent becomes orphaned. (#207746)
- Restrict non-local Elasticsearch output types for agentless integrations and policies. (#207296)
- Fix API code to prevent bulk actions from timing out. (#205735)
- Fix generation of dynamic mapping for objects with specific subfields. (#204104)
- Fix logic to ensure that agents are only considered stuck in updating when an upgrade fails. (#202126)
-
Support
- Fleet Server
-
- Return a 429 error when the Fleet Server connection limit is reached instead of silently closing connections. #4402
- Elastic Agent
-
- Prevent installation of Elastic Defend in emulated environment, in which it’s not supported. #6095 #6082
- Re-enable notifying Fleet when [agent] is uninstalled on Windows. #6257 #5952
- Log a warning on same version upgrade attempts and prevent the agent from reporting a failed upgrade state. #6273 #6186
- Add retries for requesting download verifiers when upgrading an agent. #6276 #5163
-
Replace
list
withitems
from fromkibanaFetchToken
aslist
is deprecated in the API response and will be removed. #6437 #6023 -
Restore
cloud-defend
as an expected binary after it was accidentally removed from containers in 8.17.0 and later versions. #6470 #6469 -
Restore the
maintainer
label for container images rather than the default inherited from a base image. #6512 - Fix enrollment for containerized Elastic Agent when the enrollment token changes or the agent is unenrolled. #6568 #3586
- Change how Windows process handles are obtained when assigning sub-processes to Job objects. #6825