Troubleshooting
* was deleted. Resurrection of deleted * is not supported. Please, use a new ID
This issue can happen if you try to deploy an object (Workspace or Monitor) with an ID that was previously used and then deleted.
To fix this issue, replace the ID with a new one. You can create a new ID in python using: python -c 'import uuid; print(uuid.uuid4())'
. If this issue appears on multiple objects, do the same for all of them using each time a new ID.
Example
- Create a new folder and start a command line from this folder
- Create a workspace:
sifflet code workspace init --file workspace.yaml --name "A workspace"
- Deploy the workspace:
sifflet code workspace apply --file workspace.yaml
Deployment should be successful - Delete the workspace:
sifflet code workspace delete --file workspace.yaml
Deletion should be successful. The workspace is now deleted from the Sifflet backend. - Try to redeploy the workspace:
sifflet code workspace apply --file workspace.yaml
The last action will fail with the following message:
Workspace was deleted. Resurrection of deleted workspaces is not supported. Please, use a new ID.
To fix this:
- Generate a new UUIID with
python -c 'import uuid; print(uuid.uuid4())'
(or any other method). - Copy the generated UUID.
- Replace the
id
inworkspace.yaml
by this new UUID. - Redeploy the workspace:
sifflet code workspace apply --file workspace.yaml
This time the deploy succeed.
Unsupported Workspace version * or Unknown version "*"
The version
property in one of your object is invalid. This property is used to define the version of the schema of the object to deploy (Workspace or Monitor).
To fix this issue, use a correct version number.
See Workspace schema and Monitor schema for the value to use.
Example
- Create a workspace.yaml file with the following content:
kind: Workspace
version: 23
id: 01f92a9b-2835-4805-8576-e31dd02a24c8
name: A workspace
include:
- '*.yaml'
- Try to deploy the workspace:
sifflet code workspace apply --file workspace.yaml
The workspace deployment will fail with the following error:
Unsupported Workspace version: 23
To fix it:
- Change the
version
property from23
to1
- Redeploy the workspace:
sifflet code workspace apply --file workspace.yaml
This time the deploy succeed.
Multiple * found matching the criteria (*). Specify the ID for disambiguation
An object is make a reference to another object (for instance a Notification, a Dataset or a Tag) that can have multiple correspondances.
To fix this issue, make the reference less ambiguous by adding other properties to the reference or by directly using the ID (to ensure non-ambiguity and immutability).
You can find more information on how to deal with reference to other objects in Monitor schema - Referencing other Sifflet objects
Example
In my example, we'll consider I have two datasources: BigQuery DWH
and MYSQL DB
. Both datasources have a dataset names sales
.
- Create a workspace with the following files:
kind: Workspace version: 1 id: 01f92a9b-2835-4805-8576-e31dd02a24c8 name: A workspace include: - '*.yaml'
kind: Monitor version: 1 id: 7de8d626-ee3d-4c1f-87f6-d4567f738438 name: My monitor incident: severity: Low datasets: - name: sales parameters: kind: SchemaChange
- Deploy the workspace:
sifflet code workspace apply --file workspace.yaml
The deployment will fail with the following error:
Multiple datasets found matching the criteria (id=null, name=sales, datasource=null). Specify the datasource or use the ID for disambiguation.
Because the sales
dataset name can refer to the sales
dataset in the BigQuery DWH
datasource or in the MYSQL DB
datasource.
To fix it, you can either, specify the ID of the dataset or provide additional informations on the datasource, like its name or ID (you can also have both if you want to keep the human readable visible in the file). Are are multiple possibilities to fix it in my case:
- Replace the content of monitor.yaml by one of the following option:
kind: Monitor version: 1 id: 7de8d626-ee3d-4c1f-87f6-d4567f738438 name: My monitor incident: severity: Low datasets: - name: sales datasource: name: BigQuery DHW parameters: kind: SchemaChange
kind: Monitor version: 1 id: 7de8d626-ee3d-4c1f-87f6-d4567f738438 name: My monitor incident: severity: Low datasets: - id: ef28ad84-3bdc-467e-84df-6890781f676c parameters: kind: SchemaChange
kind: Monitor version: 1 id: 7de8d626-ee3d-4c1f-87f6-d4567f738438 name: My monitor incident: severity: Low datasets: - name: sales datasource: id: dc934d21-2883-4300-a815-2a164ffb0630 parameters: kind: SchemaChange
kind: Monitor version: 1 id: 7de8d626-ee3d-4c1f-87f6-d4567f738438 name: My monitor incident: severity: Low datasets: - id: ef28ad84-3bdc-467e-84df-6890781f676c name: sales parameters: kind: SchemaChange
- Deploy the workspace:
sifflet code workspace apply --file workspace.yaml
This time the deployment succeeds.
Untracking object not allowed because objectUntrackAction is set to Error
By default, to prevent any unintended deletion of resources, sifflet code workspace apply
returns an error when deleting object.
This will avoid unexpected deletion caused by modification of the include
or exclude
in the workspace.yaml
file, or by a mistake caused by the modification of an object id
.
To fix this issue, if the delete is intentional, add the --force-delete
flag to the sifflet code workspace apply
command.
Example
This example assumes that the environment has a unique dataset named sales
.
- Create a workspace with the following files:
kind: Workspace version: 1 id: 01f92a9b-2835-4805-8576-e31dd02a24c8 name: A workspace include: - '*.yaml'
kind: Monitor version: 1 id: 7de8d626-ee3d-4c1f-87f6-d4567f738438 name: My monitor incident: severity: Low datasets: - name: sales parameters: kind: SchemaChange
- Deploy the workspace:
sifflet code workspace apply --file workspace.yaml
- Remove the monitor.yaml file
- Deploy the workspace:
sifflet code workspace apply --file workspace.yaml
The deployment fails with the following error:
Untracking object not allowed because objectUntrackAction is set to Error.
To fix it:
- Deploy the workspace using the
--force-delete
flag:sifflet code workspace apply --file workspace.yaml--force-delete
The deployment succeeds and the monitor is correctly deleted.
Tracking object not allowed because objectTrackAction is set to Error
Currently, migrating an object created via the Sifflet website to managed via code is not supported.
If you just want to create a copy of a monitor, generate a new ID and update the id
property of the monitor with this new value (You can create a new ID in python using: python -c 'import uuid; print(uuid.uuid4())'
).
If you want to do this migration, you need to delete the object from the UI and create it via code using a new ID.
Deleting an object via the UI will delete all its associated data
Deleting an object (like a Monitor) via the UI will delete all its associated data, such as monitor runs, incidents, ...
These data won't be restored even if the same monitor is re-created via Monitor as Code.
Example
- Create a monitor on the Sifflet website and save it.
- On the page of the new monitor, click on Show as YAML code and copy the code the appears in the dialog.
- With the Sifflet CLI, create a new workspace
- Paste the code of the monitor you copied into a new monitor.yaml file and save it.
- Deploy the workspace:
sifflet code workspace apply --file workspace.yaml
The deployment fails with the following error:
Tracking object not allowed because objectTrackAction is set to Error.
To fix it:
- Generate a new UUID:
python -c 'import uuid; print(uuid.uuid4())'
and copy it - Replace the ID in the
monitor.yaml
file with the generated one - (Optional) If you want to keep only one version of your monitor delete the monitor in the UX (⚠️ See the Warning callout above).
- Deploy the workspace:
sifflet code workspace apply --file workspace.yaml
This time the deployment succeeds.
Updated 12 months ago