Last updated

Troubleshooting Facilities API

This topic provides useful information to help you troubleshoot any errors you may encounter while implementing the Facilities API.

Missing required fields

The following error response indicates that an unsupported (unrecognized) field wrong_field was present in the request body.

{
  "errors": [
    {
      "message": "Invalid value",
      "code": 320,
      "details": {
        "fields": "instances.wrong_field",
        "facility_id": 2,
        "instance_id": null
      },
      "description": "Unrecognized field \"wrong_field\" (class com.booking.contentapi.facilitiesapi.models.api.Instance), not marked as ignorable"
    }
  ],
  "meta": {
    "ruid": "X-RUID-EXAMPLE"
  }
}

Most of the error descriptions will contain the fields object which can help you understand the exact field causing the issue.

Common errors

This section captures the common errors you may encounter while implementing the Facilities API.

Missing instance field

Error description: instances required for facility_id: {id}

You can encounter this error when you fail to include the instances array for a multi-instance facility.

{
  "errors": [
    {
      "message": "Invalid value",
      "code": 320,
      "details": {
        "fields": "property_facility_list[0]"
      },
      "description": "instances required for facility_id:2"
    }
  ],
  "meta": {
    "ruid": "f5197afa-4ec2-4236-89d1-b18ed4fda4f5"
  }
}

Invalid request example

For example, this is an invalid request:

[
  {
    "facility_id": 2,
    "state": "PRESENT"
  },
  ...
]

To fix the error, add the instances array.

Parking (Facility id: 2) is a multi-instance facility and requires the instances object.

Valid request example

[
  {
    "facility_id": 2,
    "instances": [
      {
        "instance_id": 56327065,
        "parking_details": {
          "name": "Parking #1",
          "parking_type": "PARKING_GARAGE",
          "parking_location": "ON_SITE",
          "parking_access": "ONLY_GUESTS",
          "parking_reservation": "NEEDED",
          "max_height_m": 99.0,
          "has_valet_service": "PRESENT",
          "has_onsite_staff": "PRESENT",
          "has_gated_parking": "PRESENT",
          "has_security_cameras": "PRESENT",
          "has_ev_charging_station": "PRESENT",
          "has_accessible_parking_spots": "PRESENT"
        },
        "payment_details": {
          "charge_mode": "PAID",
          "charge_details": {
            "price": 100.0,
            "frequency": "PER_HOUR"
          }
        }
      }
    ],
    "state": "PRESENT"
  }
]

Missing required details object for multi-instance facilities

Error description: instances.{details_type} required for facility_id: {id}

You can encounter this error, if the required Details object was not specified for a multi-instance facility.

Invalid request example

For example, this is an invalid request.

[
  {
    "facility_id": 2,
    "instances": [
      {
        "instance_id": 56327065,
        "payment_details": {
          "charge_mode": "PAID",
          "charge_details": {
            "price": 100.0,
            "frequency": "PER_HOUR"
          }
        }
      }
    ],
    "state": "PRESENT"
  }
]

For Parking (Facility id: 2), parking_details must be specified.

Valid request example

This is a valid request example.

[
  {
    "facility_id": 2,
    "instances": [
      {
        "instance_id": 56327065,
        "parking_details": {
          "name": "Parking #1",
          "parking_type": "PARKING_GARAGE",
          "parking_location": "ON_SITE",
          "parking_access": "ONLY_GUESTS",
          "parking_reservation": "NEEDED",
          "max_height_m": 99.0,
          "has_valet_service": "PRESENT",
          "has_onsite_staff": "PRESENT",
          "has_gated_parking": "PRESENT",
          "has_security_cameras": "PRESENT",
          "has_ev_charging_station": "PRESENT",
          "has_accessible_parking_spots": "PRESENT"
        },
        "payment_details": {
          "charge_mode": "PAID",
          "charge_details": {
            "price": 100.0,
            "frequency": "PER_HOUR"
          }
        }
      }
    ],
    "state": "PRESENT"
  }
]

Missing required details

Error description: must not be null

{
  "errors": [
    {
      "message": "Invalid value",
      "code": 320,
      "details": {
        "fields": "property_facility_list[0].instances[0].parking_details.name"
      },
      "description": "must not be null"
    }
  ],
  "meta": {
    "ruid": "X-RUID-EXAMPLE"
  }
}

You can encounter this error, when you fail to include a required field for a multi-instance facility.

Invalid request example

For example, this is an invalid request.

[
  {
    "facility_id": 2,
    "instances": [
      {
        "instance_id": 56327065,
        "parking_details": {
          "parking_type": "PARKING_GARAGE",
          "parking_location": "ON_SITE",
          "parking_access": "ONLY_GUESTS",
          "parking_reservation": "NEEDED",
          "max_height_m": 99.0,
          "has_valet_service": "PRESENT",
          "has_onsite_staff": "PRESENT",
          "has_gated_parking": "PRESENT",
          "has_security_cameras": "PRESENT",
          "has_ev_charging_station": "PRESENT",
          "has_accessible_parking_spots": "PRESENT"
        },
        "payment_details": {
          "charge_mode": "PAID",
          "charge_details": {
            "price": 100.0,
            "frequency": "PER_HOUR"
          }
        }
      }
    ],
    "state": "PRESENT"
  }
]

For Parking, parking_details.name field is mandatory.

Valid request example

{!code/facilities-api/valid_parking.json!}

Unique names for multi-instance facilities

Error description: name must be unique for instances in facility_id: {id}

You can encounter this error, if more than one instance of a multi-instance facility has the same name. Facilities with multiple instances must have unique names (unique per property, not absolute)

{
  "errors": [
    {
      "message": "Invalid value",
      "code": 320,
      "details": {
        "fields": "property_facility_list[0]"
      },
      "description": "name must be unique for instances in facility_id: 2"
    }
  ],
  "meta": {
    "ruid": "6dc95763-7ad3-4c76-9f88-e363f84a29f9"
  }
}

Invalid request example

The following is an invalid request example.

[
  {
    "facility_id": 2,
    "instances": [
      {
        "instance_id": 56327065,
        "parking_details": {
          "name": "Parking #1",
          ...
        },
        "payment_details": {
          ...
        }
      },
      {
        "parking_details": {
          "name": "Parking #1",
          ...
        },
        ...
      }
    ],
    "state": "PRESENT"
  }
]

For Parking, the name field must be unique across all instances.

Valid request example

[
  {
    "facility_id": 2,
    "instances": [
      {
        "instance_id": 56327065,
        "parking_details": {
          "name": "Parking #1",
          ...
        },
        "payment_details": {
          ...
        }
      },
      {
        "parking_details": {
          "name": "Parking #2",
          ...
        },
        ...
      }
    ],
    "state": "PRESENT"
  }
]