Skip to content

[BUG] geo2ip update fails #810

@bruberg

Description

@bruberg

Describe the bug

geo2ip processed log events are tagged with source.geo.error: ip2geo_data_expired. Checking the state of one of the data sources show that updating has failed for some time:

# GET /_plugins/geospatial/ip2geo/datasource/city-datasource
{
  "datasources": [
    {
      "name": "city-datasource",
      "state": "AVAILABLE",
      "endpoint": "https://geoip.maps.opensearch.org/v1/geolite2-city/manifest.json",
      "update_interval_in_days": 3,
      "next_update_at_in_epoch_millis": 1761551548911,
      "database": {
        "provider": "maxmind",
        "sha256_hash": "7xh3reRaDjT8HyQ/Up5+QWu3eC0NHRKAvttfmNwNeTM=",
        "updated_at_in_epoch_millis": 1758636974000,
        "valid_for_in_days": 30,
        "fields": [
          "country_iso_code",
          "country_name",
          "continent_name",
          "region_iso_code",
          "region_name",
          "city_name",
          "time_zone",
          "location"
        ]
      },
      "update_stats": {
        "last_succeeded_at_in_epoch_millis": 1758700716603,
        "last_processing_time_in_millis": 366704,
        "last_failed_at_in_epoch_millis": 1761292895482,
        "last_skipped_at_in_epoch_millis": 1757404349787
      }
    }
  ]
}

Note: The last_succeeded_at_in_epoch_millis timestamp is 30 days ago:

# LC_ALL=C date --date=@1758700716
Wed Sep 24 09:58:36 CEST 2025

Trying to update the definition as per https://docs.opensearch.org/latest/ingest-pipelines/processors/ip2geo/#updating-an-ip2geo-data-source (quoting the URL) fails with the following output:

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "datasource will expire at 2025-10-24T07:58:36.603Z with the update interval"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "datasource will expire at 2025-10-24T07:58:36.603Z with the update interval"
  },
  "status": 400
}

Note: The date 2025-10-24 was three days ago.

Checking the URL manually with curl (curl -o - https://geoip.maps.opensearch.org/v1/geolite2-country/manifest.json) gives a Cloudfront error:

Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.

Note: I've tried from various ISPs and networks and the exact same error occurs.

Related component

Plugins

To Reproduce

curl -o - https://geoip.maps.opensearch.org/v1/geolite2-country/manifest.json

Expected behavior

I expect the ip2geo data sources to work.

Additional Details

Plugins

# /usr/share/opensearch/bin/opensearch-plugin list
opensearch-alerting
opensearch-anomaly-detection
opensearch-asynchronous-search
opensearch-cross-cluster-replication
opensearch-custom-codecs
opensearch-flow-framework
opensearch-geospatial
opensearch-index-management
opensearch-job-scheduler
opensearch-knn
opensearch-ltr
opensearch-ml
opensearch-neural-search
opensearch-notifications
opensearch-notifications-core
opensearch-observability
opensearch-performance-analyzer
opensearch-reports-scheduler
opensearch-search-relevance
opensearch-security
opensearch-security-analytics
opensearch-skills
opensearch-sql
opensearch-system-templates
opensearch-ubi
prometheus-exporter
query-insights

Host/Environment (please complete the following information):

  • OS: Ubuntu
  • Version 22.04.5 LTS

Additional context

  • OpenSearch v3.3.1 from apt repo

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions