Iglu "ResolutionError" in the v1.0.0 RDB Shredder

Hi, I am setting up Snowplow on AWS and I am getting stuck on the RDB Shredder piece of the pipeline. I have set up an internal static Iglu repository which works fine during the enrichment part. I made sure that repository is reachable from the nodes in the EMR cluster with the curl command. All the logs end up in the output=bad/vendor=com.snowplowanalytics.snowplow.badrows/name=loader_iglu_error/ folder. Here is example JSON object from the file:

{
   "schema":"iglu:com.snowplowanalytics.snowplow.badrows/loader_iglu_error/jsonschema/2-0-0",
   "data":{
      "processor":{
         "artifact":"snowplow-rdb-loader-common",
         "version":"1.0.0"
      },
      "failure":[
         {
            "schemaCriterion":"iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-*-*",
            "error":{
               "error":"ResolutionError",
               "lookupHistory":[
                  {
                     "repository":"Fit Iglu",
                     "errors":[
                        {
                           "error":"NotFound"
                        }
                     ],
                     "attempts":1,
                     "lastAttempt":"2021-04-29T20:18:52.998Z"
                  },
                  {
                     "repository":"Iglu Client Embedded",
                     "errors":[
                        {
                           "error":"NotFound"
                        }
                     ],
                     "attempts":1,
                     "lastAttempt":"2021-04-29T20:18:52.998Z"
                  }
               ]
            }
         }
      ],
      "payload":{
         "app_id":"financeit",
         "platform":"web",
         "etl_tstamp":"2021-04-28T22:00:56.819Z",
         "collector_tstamp":"2021-04-28T22:00:06.171Z",
         "dvce_created_tstamp":"2021-04-28T22:00:05.906Z",
         "event":"unstruct",
         "event_id":"8b27accb-71ff-41b4-bbb8-b26aa4abf5dd",
         "txn_id":null,
         "name_tracker":"fit_partner_portal_frontend_snowplow",
         "v_tracker":"js-2.17.3",
         "v_collector":"ssc-1.0.1-kinesis",
         "v_etl":"stream-enrich-1.1.3-common-1.1.3",
         "user_id":null,
         "user_ipaddress":"66.207.200.150",
         "user_fingerprint":null,
         "domain_userid":"e01d724c-72a5-437d-b52f-c553492a9e53",
         "domain_sessionidx":1,
         "network_userid":"1e5956e7-f020-4775-a6dd-4dd3c4c38562",
         "geo_country":null,
         "geo_region":null,
         "geo_city":null,
         "geo_zipcode":null,
         "geo_latitude":null,
         "geo_longitude":null,
         "geo_region_name":null,
         "ip_isp":null,
         "ip_organization":null,
         "ip_domain":null,
         "ip_netspeed":null,
         "page_url":"http://dev.lvh.me:3000/en/partners/state_action?from_marketing=true&step=company_info",
         "page_title":null,
         "page_referrer":"http://dev.lvh.me:3000/en/login",
         "page_urlscheme":"http",
         "page_urlhost":"dev.lvh.me",
         "page_urlport":3000,
         "page_urlpath":"/en/partners/state_action",
         "page_urlquery":"from_marketing=true&step=company_info",
         "page_urlfragment":null,
         "refr_urlscheme":"http",
         "refr_urlhost":"dev.lvh.me",
         "refr_urlport":3000,
         "refr_urlpath":"/en/login",
         "refr_urlquery":null,
         "refr_urlfragment":null,
         "refr_medium":null,
         "refr_source":null,
         "refr_term":null,
         "mkt_medium":null,
         "mkt_source":null,
         "mkt_term":null,
         "mkt_content":null,
         "mkt_campaign":null,
         "contexts":{
            "schema":"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
            "data":[
               {
                  "schema":"iglu:com.google.analytics/cookies/jsonschema/1-0-0",
                  "data":{
                     "_ga":"GA1.2.1897803480.1619540745"
                  }
               },
               {
                  "schema":"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
                  "data":{
                     "id":"486f0465-b0a9-483a-9a7a-b45cb8bd2fdd"
                  }
               },
               {
                  "schema":"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
                  "data":{
                     "navigationStart":1619647102498,
                     "unloadEventStart":1619647108973,
                     "unloadEventEnd":1619647108976,
                     "redirectStart":0,
                     "redirectEnd":0,
                     "fetchStart":1619647102501,
                     "domainLookupStart":1619647102501,
                     "domainLookupEnd":1619647102501,
                     "connectStart":1619647102501,
                     "connectEnd":1619647102501,
                     "secureConnectionStart":0,
                     "requestStart":1619647102642,
                     "responseStart":1619647108934,
                     "responseEnd":1619647108939,
                     "domLoading":1619647109107,
                     "domInteractive":1619647110341,
                     "domContentLoadedEventStart":1619647110341,
                     "domContentLoadedEventEnd":1619647110427,
                     "domComplete":1619647110805,
                     "loadEventStart":1619647110806,
                     "loadEventEnd":1619647110820
                  }
               }
            ]
         },
         "se_category":null,
         "se_action":null,
         "se_label":null,
         "se_property":null,
         "se_value":null,
         "unstruct_event":{
            "schema":"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",
            "data":{
               "schema":"iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0",
               "data":{
                  "formId":"edit_partner_80",
                  "elementId":"data[firm_address]",
                  "nodeName":"INPUT",
                  "elementClasses":[
                     "tw-text-lg",
                     "tw-h-11",
                     "tw-rounded-sm",
                     "tw-border",
                     "tw-appearance-none",
                     "tw-w-full",
                     "tw-p-2",
                     "tw-mt-1",
                     "tw-border-ui-gray-100",
                     "focus:tw-border-interactive-100",
                     "focus:tw-outline-none",
                     "focus:tw-bg-white",
                     "hover:tw-border-interactive-100",
                     "tw-bg-ui-gray-40"
                  ],
                  "value":"",
                  "elementType":"text"
               }
            }
         },
         "tr_orderid":null,
         "tr_affiliation":null,
         "tr_total":null,
         "tr_tax":null,
         "tr_shipping":null,
         "tr_city":null,
         "tr_state":null,
         "tr_country":null,
         "ti_orderid":null,
         "ti_sku":null,
         "ti_name":null,
         "ti_category":null,
         "ti_price":null,
         "ti_quantity":null,
         "pp_xoffset_min":null,
         "pp_xoffset_max":null,
         "pp_yoffset_min":null,
         "pp_yoffset_max":null,
         "useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36",
         "br_name":null,
         "br_family":null,
         "br_version":null,
         "br_type":null,
         "br_renderengine":null,
         "br_lang":"en-US",
         "br_features_pdf":true,
         "br_features_flash":false,
         "br_features_java":false,
         "br_features_director":false,
         "br_features_quicktime":false,
         "br_features_realplayer":false,
         "br_features_windowsmedia":false,
         "br_features_gears":false,
         "br_features_silverlight":false,
         "br_cookies":true,
         "br_colordepth":"24",
         "br_viewwidth":2560,
         "br_viewheight":590,
         "os_name":null,
         "os_family":null,
         "os_manufacturer":null,
         "os_timezone":"America/New_York",
         "dvce_type":null,
         "dvce_ismobile":null,
         "dvce_screenwidth":2560,
         "dvce_screenheight":1080,
         "doc_charset":"UTF-8",
         "doc_width":2545,
         "doc_height":1766,
         "tr_currency":null,
         "tr_total_base":null,
         "tr_tax_base":null,
         "tr_shipping_base":null,
         "ti_currency":null,
         "ti_price_base":null,
         "base_currency":null,
         "geo_timezone":null,
         "mkt_clickid":null,
         "mkt_network":null,
         "etl_tags":null,
         "dvce_sent_tstamp":"2021-04-28T22:00:05.914Z",
         "refr_domain_userid":null,
         "refr_dvce_tstamp":null,
         "derived_contexts":{
            
         },
         "domain_sessionid":"2a13b3e4-9f3c-47e7-a89e-4188f4a33d85",
         "derived_tstamp":"2021-04-28T22:00:06.163Z",
         "event_vendor":"com.snowplowanalytics.snowplow",
         "event_name":"focus_form",
         "event_format":"jsonschema",
         "event_version":"1-0-0",
         "event_fingerprint":null,
         "true_tstamp":null
      }
   }
}

The config file is standard:

{
  "schema": "iglu:com.snowplowanalytics.iglu/resolver-config/jsonschema/1-0-2",
  "data": {
    "cacheSize": 500,
    "repositories": [
      {
        "name": "Iglu Fit",
        "priority": 0,
        "vendorPrefixes": [ "com.snowplowanalytics" ],
        "connection": {
          "http": {
            "uri": "http://172.51.124.60"
          }
        }
      }
    ]
  }
}

Any help trying to get this resolved will be appreciated!

Which Iglu server are you using? Typically the static Iglu repository uses S3 (though of course it’s possible to use other provides for this).

It looks like you are also using a private IP - this shouldn’t be an issue but might be contributing. Are these events successfully validated during the enrichment phase in stream enrich? (If so that would suggest that the Iglu resolution error is isolated to this component and the Iglu repository itself is fine).

The iglu server is just a simple nginx server installed on ec2 with files cloned from https://github.com/snowplow/iglu-central/tree/master/schemas. I made sure the private IP is accessible from the EMR nodes:

curl http://172.51.124.60/schemas/com.snowplowanalytics.self-desc/instance/jsonschema/1-0-0

works with no issues. I imagine the enrichment piece works well because files land in the “good” folder so problem is isolated to the shredding part.

Hi @darek ,

The issue is that shredder is trying to talk to an Iglu Server, whereas what you have is a static Iglu registry.

Since R32 of RDB loader, it is required to use an Iglu Server in order to determine the order of the columns when shredding as TSV. An Iglu Server brings the possibility to list all the schemas for a major version, 1-*-* in your case.

2 Likes

That makes sense, I will set it up and test again.

@BenB that did the trick, thanks for help. Can I suggest to update the docs as it is not clear from them currently for a fresh 1.0.0 installation.

You’re right! We’ve updated the documentation to make it clear. Thank you!

1 Like