Data lookup for aws_subnets in module not working


I’ve a very simple module that creates a RDS instance that’s failing to create DB subnet Group.
I’m passing vpc_id as a variable to the module for looking up subnets. used for apply

module "rds_instance" {
  source = "../terraform-modules/terraform-aws-rds-cluster"
  vpc_id     = var.vpc_id
  region     = var.region
  db_name    = "test-instance"
} for module

data "aws_subnets" "private" {
  filter {
    name   = "vpc-id"
    values = [var.vpc_id]

resource "aws_db_subnet_group" "default" {
  name        = var.rds_subnet_group
  description = "Our main group of subnets"
  subnet_ids = data.aws_subnets.private.ids

resource "aws_db_instance" "default" {

This is failing with following error

│ Error: creating RDS DB Subnet Group (terraform-20230615220805359600000001): InvalidSubnet: Subnet IDs are required.
│ status code: 400, request id: 9aca2d3c-acab-4cb4-8293-a8714ed6ddbd

│ with module.rds_instance.aws_db_subnet_group.default,
│ on .terraform/modules/rds_instance/ line 9, in resource “aws_db_subnet_group” “default”:
│ 9: resource “aws_db_subnet_group” “default” {

If I move the data lookup from module to the actual, it’s working.

Is there something wrong with the way variables are being passed into the module or just data lookups are supposed to happen outside the module?

Thanks for your inputs.