Moving from 2.8.4 to 3.0.4 broke my dependencies.

This is what worked in 2.8.4

config {
  type: "assertion",
  tags: ["pos"],
  dependencies: ["s_o_t-member_sale_outs_units_drop_log"]
}

I now get this error:

DataEngineer_0-1728568473861.png

Action target names cannot include ‘.’


In a different sqlx, this was working in 2.8.4

dependencies: [
                      "asrt-s_o_t-member_sale_outs_total_vol_drop",
                      "asrt-s_o_t-member_sale_outs_units_drop",
                      "asrt-s_o_t-member_sale_outs_vol_drop",
                      ],

But now in 3.0.4 I get these errors:

Missing dependency detected: Action “..member_sale_outs” depends on “{“name”:“asrt-s_o_t-member_sale_outs_units_drop”,“includeDependentAssertions”:false}” which does not exist

Missing dependency detected: Action “.member_sale_outs” depends on “{“name”:“asrt-s_o_t-member_sale_outs_vol_drop”,“includeDependentAssertions”:false}” which does not exist

Hi @DataEngineer ,

Welcome to Google Cloud Community!

The issue you’re encountering stems from how Dataform manages dependency handling and assertion naming conventions, particularly in version 3.0.4.

Below are the possible solutions:

  • The error message “Action target names cannot include '.'” indicates that your action target’s name contains a dot (‘.’), which is not permitted. To resolve this issue, try replacing any dots in the naming convention with underscores (‘_’), as this is typically an acceptable alternative.
  • The message “Missing dependency detected” indicates that Dataform is unable to locate a necessary dependency for your SQLX file. Ensure that all your dependencies (asrt-s_o_t-member_sale_outs_units_drop, and asrt-s_o_t-member_sale_outs_vol_drop) are properly declared before executing your SQLX file (member_sale_outs.sqlx). This helps Dataform build a dependency tree, which determines the order in which your SQL workflow objects are executed.
  • Consider exploring the new feature introduced in version 3.0.4, which includes the dependOnDependencyAssertions functionality. This allows you to automatically set assertions for all dependency actions as dependencies. Utilizing this feature could help resolve the issue of dependencies not being recognized.

I hope the above information is helpful.