# WatchFacePushManager.UpdateWatchFaceException

Artifact: [androidx.wear.watchfacepush:watchfacepush](https://developer.android.com/jetpack/androidx/releases/wear-watchfacepush) [View Source](https://cs.android.com/search?q=file:androidx/wear/watchfacepush/WatchFacePush.kt+class:androidx.wear.watchfacepush.WatchFacePushManager.UpdateWatchFaceException) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchfacepush#1.0.0)

*** ** * ** ***


```
public final class WatchFacePushManager.UpdateWatchFaceException extends Exception
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [kotlin.Throwable](https://developer.android.com/reference/java/lang/Throwable.html) |||
|   | ↳ | [java.lang.Exception](https://developer.android.com/reference/java/lang/Exception.html) ||
|   |   | ↳ | [androidx.wear.watchfacepush.WatchFacePushManager.UpdateWatchFaceException](https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException) |

*** ** * ** ***

An exception that can be thrown by `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager#updateWatchFace(kotlin.String,android.os.ParcelFileDescriptor,kotlin.String)`

## Summary

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#ERROR_INVALID_PACKAGE_NAME()` The package name of the watch face is invalid. |
| `static final int` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#ERROR_INVALID_SLOT_ID()` The slot ID provided is not valid. |
| `static final int` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#ERROR_INVALID_VALIDATION_TOKEN()` The validation token provided does not match the watch face. |
| `static final int` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#ERROR_MALFORMED_WATCHFACE_APK()` The provided watch face is not a valid Android APK. |
| `static final int` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#ERROR_UNEXPECTED_CONTENT()` Unexpected content in the APK. |
| `static final int` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#ERROR_UNKNOWN()` Unknown error while updating a watch face. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#UpdateWatchFaceException(kotlin.Int,kotlin.Throwable)(int errorCode, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Throwable.html rootCause)` |

| ### Public methods |
|---|---|
| `final int` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#getErrorCode()()` The specific subtype of error occurred. |
| `https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException#getMessage()()` |

### Inherited methods

From [kotlin.Throwable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-throwable/index.html) `final void` `https://developer.android.com/reference/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Throwable.html exception)` `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Throwable.html` `https://developer.android.com/reference/java/lang/Throwable.html#fillInStackTrace()()` `https://developer.android.com/reference/java/lang/Throwable.html` `https://developer.android.com/reference/java/lang/Throwable.html#getCause()()` `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` `@https://developer.android.com/reference/androidx/annotation/RecentlyNullable
https://developer.android.com/reference/java/lang/Throwable.html#getLocalizedMessage()()` `@https://developer.android.com/reference/androidx/annotation/NonNull StackTraceElement[]` `@https://developer.android.com/reference/androidx/annotation/RecentlyNonNull
https://developer.android.com/reference/java/lang/Throwable.html#getStackTrace()()` `final @https://developer.android.com/reference/androidx/annotation/NonNull Throwable[]` `@https://developer.android.com/reference/androidx/annotation/RecentlyNonNull
https://developer.android.com/reference/java/lang/Throwable.html#getSuppressed()()` `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Throwable.html` `https://developer.android.com/reference/java/lang/Throwable.html#initCause(java.lang.Throwable)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Throwable.html cause)` `void` `https://developer.android.com/reference/java/lang/Throwable.html#printStackTrace()()` `void` `https://developer.android.com/reference/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/io/PrintStream.html s)` `void` `https://developer.android.com/reference/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/io/PrintWriter.html s)` `void` `https://developer.android.com/reference/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement[])(@https://developer.android.com/reference/androidx/annotation/NonNull StackTraceElement[] stackTrace)`

## Constants

### ERROR_INVALID_PACKAGE_NAME

```
public static final int ERROR_INVALID_PACKAGE_NAME
```

The package name of the watch face is invalid.

The package name of the watch face must start with the package name of the Watch Face Push client, followed by the 'watchfacepush' keyword, ending with the unique watch face name.

### ERROR_INVALID_SLOT_ID

```
public static final int ERROR_INVALID_SLOT_ID
```

The slot ID provided is not valid. The watch face might have been removed previously, or the ID is simply incorrect. Developers should make sure to retrieve slot IDs by calling `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager#listWatchFaces()` or `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager#addWatchFace(android.os.ParcelFileDescriptor,kotlin.String)`.

### ERROR_INVALID_VALIDATION_TOKEN

```
public static final int ERROR_INVALID_VALIDATION_TOKEN
```

The validation token provided does not match the watch face. Please see the Watch Face Push documentation to see how to generate a validation token correctly.

### ERROR_MALFORMED_WATCHFACE_APK

```
public static final int ERROR_MALFORMED_WATCHFACE_APK
```

The provided watch face is not a valid Android APK.

### ERROR_UNEXPECTED_CONTENT

```
public static final int ERROR_UNEXPECTED_CONTENT
```

Unexpected content in the APK. The APK must be a WFF watchface which only contains the watchface XML file and the associated resources. The APK can't contain any executable code.

### ERROR_UNKNOWN

```
public static final int ERROR_UNKNOWN
```

Unknown error while updating a watch face. Typically this means that the Watch Face Push service on the watch could not be accessed or that the watch may be in a bad state.

## Public constructors

### UpdateWatchFaceException

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchfacepush#1.0.0)

```
public UpdateWatchFaceException(int errorCode, @NonNull Throwable rootCause)
```

| Parameters |
|---|---|
| `int errorCode` | The specific subtype of error occurred. See `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException.Companion.ErrorCode` for the possible values. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Throwable.html rootCause` | The exception that caused the problem in the first place. |

## Public methods

### getErrorCode

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchfacepush#1.0.0)

```
public final int getErrorCode()
```

The specific subtype of error occurred. See `https://developer.android.com/reference/androidx/wear/watchfacepush/WatchFacePushManager.UpdateWatchFaceException.Companion.ErrorCode` for the possible values.

### getMessage

```
public String getMessage()
```