/* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.adservices.ondevicepersonalization; import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.Nullable; import com.android.adservices.ondevicepersonalization.flags.Flags; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; /** * Exception thrown by OnDevicePersonalization APIs. * */ public class OnDevicePersonalizationException extends Exception { /** * The {@link IsolatedService} that was invoked failed to run. */ public static final int ERROR_ISOLATED_SERVICE_FAILED = 1; /** * The {@link IsolatedService} was not started because personalization is disabled by * device configuration. */ public static final int ERROR_PERSONALIZATION_DISABLED = 2; /** The ODP module was unable to load the {@link IsolatedService}. * *
Retrying may be successful for platform internal errors. */ @FlaggedApi(Flags.FLAG_EXECUTE_IN_ISOLATED_SERVICE_API_ENABLED) public static final int ERROR_ISOLATED_SERVICE_LOADING_FAILED = 3; /** * The ODP specific manifest settings for the {@link IsolatedService} are either missing or * misconfigured. */ @FlaggedApi(Flags.FLAG_EXECUTE_IN_ISOLATED_SERVICE_API_ENABLED) public static final int ERROR_ISOLATED_SERVICE_MANIFEST_PARSING_FAILED = 4; /** The {@link IsolatedService} was invoked but timed out before returning successfully. * *
This is likely due to an issue with the {@link IsolatedWorker} implementation taking too * long and retries are likely to fail. */ @FlaggedApi(Flags.FLAG_EXECUTE_IN_ISOLATED_SERVICE_API_ENABLED) public static final int ERROR_ISOLATED_SERVICE_TIMEOUT = 5; /** The {@link IsolatedService}'s call to {@link FederatedComputeScheduler#schedule} failed. *
Retrying may be successful if the issue is due to a platform internal error. */ @FlaggedApi(Flags.FLAG_EXECUTE_IN_ISOLATED_SERVICE_API_ENABLED) public static final int ERROR_SCHEDULE_TRAINING_FAILED = 6; /** * The {@link IsolatedService}'s call to {@link FederatedComputeScheduler#schedule} failed due * to missing or misconfigured federated compute settings URL in the manifest. */ @FlaggedApi(Flags.FLAG_EXECUTE_IN_ISOLATED_SERVICE_API_ENABLED) public static final int ERROR_INVALID_TRAINING_MANIFEST = 7; /** Inference failed due to {@link ModelManager} not finding the downloaded model. */ @FlaggedApi(Flags.FLAG_EXECUTE_IN_ISOLATED_SERVICE_API_ENABLED) public static final int ERROR_INFERENCE_MODEL_NOT_FOUND = 8; /** {@link ModelManager} failed to run inference. *
Retrying may be successful if the issue is due to a platform internal error.
*/
@FlaggedApi(Flags.FLAG_EXECUTE_IN_ISOLATED_SERVICE_API_ENABLED)
public static final int ERROR_INFERENCE_FAILED = 9;
/** @hide */
private static final Set