

# Amazon Neptune Engine Version 1.0.2.2 (2020-03-09)
Release: 1.0.2.2 (2020-03-09)Engine version 1.0.2.2

As of 2020-03-09, engine version 1.0.2.2 is being generally deployed. Please note that it takes several days for a new release to become available in every region. For more information about this engine version, see [Neptune Engine Release 1.0.2.2](https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases-1.0.2.2.html).

As of 2020-03-09, engine version 1.0.2.2 is being generally deployed. Please note that it takes several days for a new release to become available in every region.

## Subsequent Patch Releases for This Release
Patch Releases
+ [Release: 1.0.2.2.R2 (2020-04-02)](engine-releases-1.0.2.2.R2.md) 
+ [Release: 1.0.2.2.R3 (2020-07-22)](engine-releases-1.0.2.2.R3.md) 
+ [Release: 1.0.2.2.R4 (2020-07-23)](engine-releases-1.0.2.2.R4.md) 
+ [Release: 1.0.2.2.R5 (2020-10-12)](engine-releases-1.0.2.2.R5.md) 
+ [Release: 1.0.2.2.R6 (2021-02-19)](engine-releases-1.0.2.2.R6.md) 

## Improvements in This Engine Release
Improvements
+ Added information to the status API about transactions that are being rolled back. See [Instance Status](access-graph-status.md).
+ Upgraded the version of Apache TinkerPop to 3.4.3.

  Version 3.4.3 is backwards compatible with the previous version supported by Neptune (3.4.1). It does introduce one minor change in behavior: Gremlin no longer returns an error when you try to close a session that does not exist (see [Prevent error when closing sessions that don't exist](https://issues.apache.org/jira/browse/TINKERPOP-2237)).
+ Removed performance bottlenecks in execution of Gremlin full-text search steps.

## Defects Fixed in This Engine Release
Defects Fixed
+ Fixed a SPARQL bug in the handling of empty graph patterns in queries.
+ Fixed a SPARQL bug in the handling of unencoded semicolons in URL-encoded queries.
+ Fixed a Gremlin bug in the handling of repeated vertices in the `Union` step.
+ Fixed a Gremlin bug that caused some queries with a `.simplePath()` or `.cyclicPath()` inside a `.repeat()` to return incorrect results.
+ Fixed a Gremlin bug that caused `.project()` to return incorrect results if its child traversal returned no solutions.
+ Fixed a Gremlin bug where errors from read-write conflicts raised an `InternalFailureException` rather than a `ConcurrentModificationException`.
+ Fixed a Gremlin bug that caused `.group().by(...).by(values("property"))` failures.
+ Fixed Gremlin bugs in the profile output for full-text-search steps.
+ Fixed a resource leak in Gremlin sessions.
+ Fixed a bug that prevented the status API from reporting the correct orderable version in some cases.
+ Fixed a bulk loader bug that allowed a URL to a location other than Amazon S3 to be used as the source in a bulk load request.
+ Fixed a bulk loader bug in the detailed load status.

## Query-Language Versions Supported in This Release
Supported Query-Language Versions

Before upgrading a DB cluster to version 1.0.2.2, make sure that your project is compatible with these query-language versions:
+ *Gremlin version:* `3.4.3`
+ *SPARQL version:* `1.1`

## Upgrade Paths to Engine Release 1.0.2.2
Upgrade Paths

You can manually upgrade any previous Neptune engine release to this release.

If your cluster has its `AutoMinorVersionUpgrade` parameter set to `True`, your cluster will be upgraded to this engine release automatically two to three weeks after the date of this release, during a maintenance window.

## Upgrading to This Release
Upgrading

Amazon Neptune 1.0.2.2 is now generally available.

If a DB cluster is running an engine version from which there is an upgrade path to this release, it is eligible to be upgraded now. You can upgrade any eligible cluster using the DB cluster operations on the console or by using the SDK. The following CLI command will upgrade an eligible cluster immediately:

For Linux, OS X, or Unix:

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

For Windows:

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

Updates are applied to all instances in a DB cluster simultaneously. An update requires a database restart on those instances, so you will experience downtime ranging from 20–30 seconds to several minutes, after which you can resume using the DB cluster.

### Always test before you upgrade
Test before upgrading

When a new major or minor Neptune engine version is released, always test your Neptune applications on it first before upgrading to it. Even a minor upgrade could introduce new features or behavior that would affect your code.

Start by comparing the release notes pages from your current version to those of the targeted version to see if there will be changes in query language versions or other breaking changes.

The best way to test a new version before upgrading your production DB cluster is to clone your production cluster so that the clone is running the new engine version. You can then run queries on the clone without affecting the production DB cluster.

### Always create a manual snapshot before you upgrade
Take a manual snapshot

Before performing an upgrade, we strongly recommend that you always create a manual snapshot of your DB cluster. Having an automatic snapshot only offers short-term protection, whereas a manual snapshot remains available until you explicitly delete it.

In certain cases Neptune creates a manual snapshot for you as a part of the upgrade process, but you should not rely on this, and should create your own manual snapshot in any case.

When you are certain that you won't need to revert your DB cluster to its pre-upgrade state, you can explicitly delete the manual snapshot that you created yourself, as well as the manual snapshot that Neptune might have created. If Neptune creates a manual snapshot, it will have a name that begins with `preupgrade`, followed by the name of your DB cluster, the source engine version, the target engine version, and the date.

**Note**  
If you are trying to upgrade while [a pending action is in process](manage-console-maintaining), you may encounter an error such as the following:  

```
   We're sorry, your request to modify DB cluster (cluster identifier) has failed.
   Cannot modify engine version because instance (instance identifier) is
   running on an old configuration. Apply any pending maintenance actions on the instance before
   proceeding with the upgrade.
```
If you encounter this error, wait for the pending action to finish, or trigger a maintenance window immediately to let the previous upgrade complete.

For more information about upgrading your engine version, see [Maintaining your Amazon Neptune DB Cluster](cluster-maintenance.md). If you have any questions or concerns, the AWS Support team is available on the community forums and through [AWS Premium Support](http://aws.amazon.com/support).

# Amazon Neptune Engine Version 1.0.2.2.R6 (2021-02-19)
Release: 1.0.2.2.R6 (2021-02-19)Engine version 1.0.2.2.R6

As of 2021-02-19, engine version 1.0.2.2.R6 is being generally deployed. Please note that it takes several days for a new release to become available in every region. For more information about this engine version, see [Neptune Engine Release 1.0.2.2.R6](https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases-1.0.2.2.R6.html).

As of 2021-02-19, engine version 1.0.2.2.R6 is being generally deployed. Please note that it takes several days for a new release to become available in every region.

## Defects Fixed in This Engine Release
Defects Fixed
+ Fixed a Gremlin bug where `InternalFailureException` was set as the response code in certain circumstances when a `ConcurrentModificationException` occurred.
+ Fixed a Gremlin bug where under certain conditions updating edges or vertices could cause a transient `InternalFailureException`.

## Query-Language Versions Supported in This Release
Supported Query-Language Versions

Before upgrading a DB cluster to version 1.0.2.2.R6, make sure that your project is compatible with these query-language versions:
+ *Gremlin version:* `3.4.8`
+ *SPARQL version:* `1.1`

## Upgrade Paths to Engine Release 1.0.2.2.R6
Upgrade Paths

Your cluster will be upgraded to this patch release automatically during your next maintenance window if you are running engine version `1.0.2.2`.

You can manually upgrade any previous Neptune engine release to this release.

## Upgrading to This Release
Upgrading

Amazon Neptune 1.0.2.2.R6 is now generally available.

If a DB cluster is running an engine version from which there is an upgrade path to this release, it is eligible to be upgraded now. You can upgrade any eligible cluster using the DB cluster operations on the console or by using the SDK. The following CLI command will upgrade an eligible cluster immediately:

For Linux, OS X, or Unix:

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

For Windows:

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

Updates are applied to all instances in a DB cluster simultaneously. An update requires a database restart on those instances, so you will experience downtime ranging from 20–30 seconds to several minutes, after which you can resume using the DB cluster.

### Always test before you upgrade
Test before upgrading

When a new major or minor Neptune engine version is released, always test your Neptune applications on it first before upgrading to it. Even a minor upgrade could introduce new features or behavior that would affect your code.

Start by comparing the release notes pages from your current version to those of the targeted version to see if there will be changes in query language versions or other breaking changes.

The best way to test a new version before upgrading your production DB cluster is to clone your production cluster so that the clone is running the new engine version. You can then run queries on the clone without affecting the production DB cluster.

### Always create a manual snapshot before you upgrade
Take a manual snapshot

Before performing an upgrade, we strongly recommend that you always create a manual snapshot of your DB cluster. Having an automatic snapshot only offers short-term protection, whereas a manual snapshot remains available until you explicitly delete it.

In certain cases Neptune creates a manual snapshot for you as a part of the upgrade process, but you should not rely on this, and should create your own manual snapshot in any case.

When you are certain that you won't need to revert your DB cluster to its pre-upgrade state, you can explicitly delete the manual snapshot that you created yourself, as well as the manual snapshot that Neptune might have created. If Neptune creates a manual snapshot, it will have a name that begins with `preupgrade`, followed by the name of your DB cluster, the source engine version, the target engine version, and the date.

**Note**  
If you are trying to upgrade while [a pending action is in process](manage-console-maintaining), you may encounter an error such as the following:  

```
   We're sorry, your request to modify DB cluster (cluster identifier) has failed.
   Cannot modify engine version because instance (instance identifier) is
   running on an old configuration. Apply any pending maintenance actions on the instance before
   proceeding with the upgrade.
```
If you encounter this error, wait for the pending action to finish, or trigger a maintenance window immediately to let the previous upgrade complete.

For more information about upgrading your engine version, see [Maintaining your Amazon Neptune DB Cluster](cluster-maintenance.md). If you have any questions or concerns, the AWS Support team is available on the community forums and through [AWS Premium Support](http://aws.amazon.com/support).

# Amazon Neptune Engine Version 1.0.2.2.R5 (2020-10-12)
Release: 1.0.2.2.R5 (2020-10-12)Engine version 1.0.2.2.R5

As of 2020-10-12, engine version 1.0.2.2.R5 is being generally deployed. Please note that it takes several days for a new release to become available in every region. For more information about this engine version, see [Neptune Engine Release 1.0.2.2.R5](https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases-1.0.2.2.R5.html).

As of 2020-10-12, engine version 1.0.2.2.R5 is being generally deployed. Please note that it takes several days for a new release to become available in every region.

## Improvements in This Engine Release
Improvements
+ Improved performance for the Gremlin `properties()` step.
+ Added details about `BindOp` and `MultiplexerOp` in explain and profile reports.
+ For SPARQL query responses, added `charset` to the Content-Type header, enabling HTTP clients to recognize the charset being used automatically.

## Defects Fixed in This Engine Release
Defects Fixed
+ Fixed a SPARQL bug where `CancellationException` was not handled.
+ Fixed a SPARQL bug where queries containing nested optionals did not work correctly.
+ Fixed a SPARQL bug in LOAD where a `ConcurrentModificationException` could cause a query to hang.
+ Fixed a SPARQL bug that prevented query responses from being gzip-compressed.
+ Fixed a Gremlin bug in the `groupBy()` step.
+ Fixed a Gremlin bug related to the use of an `aggregate()` step inside a `local()` step.
+ Fixed a Gremlin bug related to using `bothE()` followed by a predicate that uses aggregate values.
+ Fixed a Gremlin bug related to using the `bothE()` step with the `repeat()` step.
+ Fixed a potential Gremlin memory leak related to the `both()` step.
+ Fixed a bug where request metrics were missing because an endpoint ending in '/' was not being handled correctly.
+ Fixed a bug that could raise a `ThrottlingException` even when the request queue is not full.
+ Fixed a bug in fetching load status when a load fails for a reason such as `LOAD_DATA_FAILED_DUE_TO_FEED_MODIFIED_OR_DELETE`.

## Query-Language Versions Supported in This Release
Supported Query-Language Versions

Before upgrading a DB cluster to version 1.0.2.2.R5, make sure that your project is compatible with these query-language versions:
+ *Gremlin version:* `3.4.3`
+ *SPARQL version:* `1.1`

## Upgrade Paths to Engine Release 1.0.2.2.R5
Upgrade Paths

Your cluster will be upgraded to this patch release automatically during your next maintenance window if you are running engine version `1.0.2.2`.

You can manually upgrade any previous Neptune engine release to this release.

## Upgrading to This Release
Upgrading

Amazon Neptune 1.0.2.2.R5 is now generally available.

If a DB cluster is running an engine version from which there is an upgrade path to this release, it is eligible to be upgraded now. You can upgrade any eligible cluster using the DB cluster operations on the console or by using the SDK. The following CLI command will upgrade an eligible cluster immediately:

For Linux, OS X, or Unix:

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

For Windows:

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

Updates are applied to all instances in a DB cluster simultaneously. An update requires a database restart on those instances, so you will experience downtime ranging from 20–30 seconds to several minutes, after which you can resume using the DB cluster.

### Always test before you upgrade
Test before upgrading

When a new major or minor Neptune engine version is released, always test your Neptune applications on it first before upgrading to it. Even a minor upgrade could introduce new features or behavior that would affect your code.

Start by comparing the release notes pages from your current version to those of the targeted version to see if there will be changes in query language versions or other breaking changes.

The best way to test a new version before upgrading your production DB cluster is to clone your production cluster so that the clone is running the new engine version. You can then run queries on the clone without affecting the production DB cluster.

### Always create a manual snapshot before you upgrade
Take a manual snapshot

Before performing an upgrade, we strongly recommend that you always create a manual snapshot of your DB cluster. Having an automatic snapshot only offers short-term protection, whereas a manual snapshot remains available until you explicitly delete it.

In certain cases Neptune creates a manual snapshot for you as a part of the upgrade process, but you should not rely on this, and should create your own manual snapshot in any case.

When you are certain that you won't need to revert your DB cluster to its pre-upgrade state, you can explicitly delete the manual snapshot that you created yourself, as well as the manual snapshot that Neptune might have created. If Neptune creates a manual snapshot, it will have a name that begins with `preupgrade`, followed by the name of your DB cluster, the source engine version, the target engine version, and the date.

**Note**  
If you are trying to upgrade while [a pending action is in process](manage-console-maintaining), you may encounter an error such as the following:  

```
   We're sorry, your request to modify DB cluster (cluster identifier) has failed.
   Cannot modify engine version because instance (instance identifier) is
   running on an old configuration. Apply any pending maintenance actions on the instance before
   proceeding with the upgrade.
```
If you encounter this error, wait for the pending action to finish, or trigger a maintenance window immediately to let the previous upgrade complete.

For more information about upgrading your engine version, see [Maintaining your Amazon Neptune DB Cluster](cluster-maintenance.md). If you have any questions or concerns, the AWS Support team is available on the community forums and through [AWS Premium Support](http://aws.amazon.com/support).

# Amazon Neptune Engine Version 1.0.2.2.R4 (2020-07-23)
Release: 1.0.2.2.R4 (2020-07-23)Engine version 1.0.2.2.R4

As of 2020-07-23, engine version 1.0.2.2.R4 is being generally deployed. Please note that it takes several days for a new release to become available in every region. For more information about this engine version, see [Neptune Engine Release 1.0.2.2.R4](https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases-1.0.2.2.R4.html).

As of 2020-07-23, engine version 1.0.2.2.R4 is being generally deployed. Please note that it takes several days for a new release to become available in every region.

## Improvements in This Engine Release
Improvements
+ Improved memory usage by releasing unused memory back to the operating system more frequently.
+ Also improved memory usage for SPARQL GROUP BY queries.
+ Increased the maximum time a WebSocket connection can stay open that is authenticated using IAM, from 36 hours to 10 days.
+ Added the `BufferCacheHitRatio` CloudWatch metric, which can be useful in diagnosing query latency and tuning instance types. See [Neptune metrics](cw-metrics.md#cw-metrics-available). 

## Defects Fixed in This Engine Release
Defects Fixed
+ Fixed a bug in closing idle or expired IAM WebSocket connections. Neptune now sends a close frame before closing the connection.
+ Fixed a SPARQL bug in the evaluation of queries containing nested FILTER EXISTS and/or FILTER NOT EXISTS conditions.
+ Fixed a SPARQL query termination bug that caused blocked threads on the server under certain extreme conditions.
+ Fixed a Gremlin bug involving Edge pathType in the `hasLabel` step.
+ Fixed a Gremlin bug to handle `toV` and `fromV` individually for each direction on `bothE`.
+ Fixed a Gremlin bug involving disappearing sideEffects.

## Query-Language Versions Supported in This Release
Supported Query-Language Versions

Before upgrading a DB cluster to version 1.0.2.2.R4, make sure that your project is compatible with these query-language versions:
+ *Gremlin version:* `3.4.3`
+ *SPARQL version:* `1.1`

## Upgrade Paths to Engine Release 1.0.2.2.R4
Upgrade Paths

Your cluster will be upgraded to this patch release automatically during your next maintenance window if you are running engine version `1.0.2.2`.

You can manually upgrade any previous Neptune engine release to this release.

## Upgrading to This Release
Upgrading

Amazon Neptune 1.0.2.2.R4 is now generally available.

If a DB cluster is running an engine version from which there is an upgrade path to this release, it is eligible to be upgraded now. You can upgrade any eligible cluster using the DB cluster operations on the console or by using the SDK. The following CLI command will upgrade an eligible cluster immediately:

For Linux, OS X, or Unix:

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

For Windows:

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

Updates are applied to all instances in a DB cluster simultaneously. An update requires a database restart on those instances, so you will experience downtime ranging from 20–30 seconds to several minutes, after which you can resume using the DB cluster.

### Always test before you upgrade
Test before upgrading

When a new major or minor Neptune engine version is released, always test your Neptune applications on it first before upgrading to it. Even a minor upgrade could introduce new features or behavior that would affect your code.

Start by comparing the release notes pages from your current version to those of the targeted version to see if there will be changes in query language versions or other breaking changes.

The best way to test a new version before upgrading your production DB cluster is to clone your production cluster so that the clone is running the new engine version. You can then run queries on the clone without affecting the production DB cluster.

### Always create a manual snapshot before you upgrade
Take a manual snapshot

Before performing an upgrade, we strongly recommend that you always create a manual snapshot of your DB cluster. Having an automatic snapshot only offers short-term protection, whereas a manual snapshot remains available until you explicitly delete it.

In certain cases Neptune creates a manual snapshot for you as a part of the upgrade process, but you should not rely on this, and should create your own manual snapshot in any case.

When you are certain that you won't need to revert your DB cluster to its pre-upgrade state, you can explicitly delete the manual snapshot that you created yourself, as well as the manual snapshot that Neptune might have created. If Neptune creates a manual snapshot, it will have a name that begins with `preupgrade`, followed by the name of your DB cluster, the source engine version, the target engine version, and the date.

**Note**  
If you are trying to upgrade while [a pending action is in process](manage-console-maintaining), you may encounter an error such as the following:  

```
   We're sorry, your request to modify DB cluster (cluster identifier) has failed.
   Cannot modify engine version because instance (instance identifier) is
   running on an old configuration. Apply any pending maintenance actions on the instance before
   proceeding with the upgrade.
```
If you encounter this error, wait for the pending action to finish, or trigger a maintenance window immediately to let the previous upgrade complete.

For more information about upgrading your engine version, see [Maintaining your Amazon Neptune DB Cluster](cluster-maintenance.md). If you have any questions or concerns, the AWS Support team is available on the community forums and through [AWS Premium Support](http://aws.amazon.com/support).

# Amazon Neptune Engine Version 1.0.2.2.R3 (2020-07-22)
Release: 1.0.2.2.R3 (2020-07-22)

Engine release 1.0.2.2.R3 was incorporated into [engine release 1.0.2.2.R4](engine-releases-1.0.2.2.R4.md).

# Amazon Neptune Engine Version 1.0.2.2.R2 (2020-04-02)
Release: 1.0.2.2.R2 (2020-04-02)Engine version 1.0.2.2.R2

As of 2020-04-02, engine version 1.0.2.2.R2 is being generally deployed. Please note that it takes several days for a new release to become available in every region. For more information about this engine version, see [Neptune Engine Release 1.0.2.2.R2](https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases-1.0.2.2.R2.html).

As of 2020-04-02, engine version 1.0.2.2.R2 is being generally deployed. Please note that it takes several days for a new release to become available in every region.

## Improvements in This Engine Release
Improvements
+ You can now queue up to 64 bulk-load jobs, rather than having to wait for one to finish before initiating the next one. You can also make execution of a queued load request contingent on the successful completion of one or more previously queued load jobs using the `dependencies` parameter of the `load` command. See [Neptune Loader Command](load-api-reference-load.md).
+ Full-text-search output can now be sorted (see [Full-text search parameters](full-text-search-parameters.md)).
+ There is now a DB cluster parameter for invoking Neptune streams, and the feature has been moved out of Lab Mode. See [Enabling Neptune Streams](streams-using-enabling.md).

## Defects Fixed in This Engine Release
Defects Fixed
+ Fixed a stochastic failure in server startup which delayed instance creation.
+ Fixed an optimizer issue where `BIND` statements in the query made the optimizer start out with unselective patterns in join-order planning.

## Query-Language Versions Supported in This Release
Supported Query-Language Versions

Before upgrading a DB cluster to version 1.0.2.2.R2, make sure that your project is compatible with these query-language versions:
+ *Gremlin version:* `3.4.3`
+ *SPARQL version:* `1.1`

## Upgrade Paths to Engine Release 1.0.2.2.R2
Upgrade Paths

Your cluster will be upgraded to this patch release automatically during your next maintenance window if you are running engine version `1.0.2.2`.

You can manually upgrade any previous Neptune engine release to this release.

## Upgrading to This Release
Upgrading

Amazon Neptune 1.0.2.2.R2 is now generally available.

If a DB cluster is running an engine version from which there is an upgrade path to this release, it is eligible to be upgraded now. You can upgrade any eligible cluster using the DB cluster operations on the console or by using the SDK. The following CLI command will upgrade an eligible cluster immediately:

For Linux, OS X, or Unix:

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

For Windows:

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

Updates are applied to all instances in a DB cluster simultaneously. An update requires a database restart on those instances, so you will experience downtime ranging from 20–30 seconds to several minutes, after which you can resume using the DB cluster.

### Always test before you upgrade
Test before upgrading

When a new major or minor Neptune engine version is released, always test your Neptune applications on it first before upgrading to it. Even a minor upgrade could introduce new features or behavior that would affect your code.

Start by comparing the release notes pages from your current version to those of the targeted version to see if there will be changes in query language versions or other breaking changes.

The best way to test a new version before upgrading your production DB cluster is to clone your production cluster so that the clone is running the new engine version. You can then run queries on the clone without affecting the production DB cluster.

### Always create a manual snapshot before you upgrade
Take a manual snapshot

Before performing an upgrade, we strongly recommend that you always create a manual snapshot of your DB cluster. Having an automatic snapshot only offers short-term protection, whereas a manual snapshot remains available until you explicitly delete it.

In certain cases Neptune creates a manual snapshot for you as a part of the upgrade process, but you should not rely on this, and should create your own manual snapshot in any case.

When you are certain that you won't need to revert your DB cluster to its pre-upgrade state, you can explicitly delete the manual snapshot that you created yourself, as well as the manual snapshot that Neptune might have created. If Neptune creates a manual snapshot, it will have a name that begins with `preupgrade`, followed by the name of your DB cluster, the source engine version, the target engine version, and the date.

**Note**  
If you are trying to upgrade while [a pending action is in process](manage-console-maintaining), you may encounter an error such as the following:  

```
   We're sorry, your request to modify DB cluster (cluster identifier) has failed.
   Cannot modify engine version because instance (instance identifier) is
   running on an old configuration. Apply any pending maintenance actions on the instance before
   proceeding with the upgrade.
```
If you encounter this error, wait for the pending action to finish, or trigger a maintenance window immediately to let the previous upgrade complete.

For more information about upgrading your engine version, see [Maintaining your Amazon Neptune DB Cluster](cluster-maintenance.md). If you have any questions or concerns, the AWS Support team is available on the community forums and through [AWS Premium Support](http://aws.amazon.com/support).